public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 1/3] [MTD-UTILS] fs-tests: fix symlink bug in integrity test
@ 2008-08-12 11:08 Adrian Hunter
  0 siblings, 0 replies; only message in thread
From: Adrian Hunter @ 2008-08-12 11:08 UTC (permalink / raw)
  To: linux-mtd@lists.infradead.org


Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
---
 tests/fs-tests/integrity/integck.c |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c
index f1a544a..be93d3e 100644
--- a/tests/fs-tests/integrity/integck.c
+++ b/tests/fs-tests/integrity/integck.c
@@ -1655,22 +1655,31 @@ static char *pick_symlink_target(const char *symlink_path)
 	return rel_path;
 }
 
-static void symlink_new(struct dir_info *dir, const char *name)
+static void symlink_new(struct dir_info *dir, const char *name_)
 {
 	struct symlink_info *s;
-	char *path;
+	char *path, *target, *name = copy_string(name_);
 	size_t sz;
 
+	path = dir_path(dir, name);
+	target = pick_symlink_target(path);
+	if (symlink(target, path) == -1) {
+		CHECK(errno == ENOSPC);
+		full = 1;
+		free(target);
+		free(path);
+		free(name);
+		return;
+	}
+	free(path);
+
 	sz = sizeof(struct symlink_info);
 	s = malloc(sz);
 	CHECK(s != NULL);
 	memset(s, 0, sz);
 	add_dir_entry(dir, 's', name, s);
-
-	path = dir_path(dir, name);
-	s->target_pathname = pick_symlink_target(path);
-	CHECK(symlink(s->target_pathname, path) != -1);
-	free(path);
+	s->target_pathname = target;
+	free(name);
 }
 
 static void symlink_remove(struct symlink_info *symlink)
-- 
1.5.2.5

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2008-08-12 11:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-12 11:08 [PATCH 1/3] [MTD-UTILS] fs-tests: fix symlink bug in integrity test Adrian Hunter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox