Module Name:    src
Committed By:   christos
Date:           Tue Jan 10 15:19:00 UTC 2017

Modified Files:
        src/tests/lib/libc/gen: t_dir.c

Log Message:
PR/51808: Ngie Cooper: fix leaks, sort includes, check returns


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/tests/lib/libc/gen/t_dir.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/lib/libc/gen/t_dir.c
diff -u src/tests/lib/libc/gen/t_dir.c:1.6 src/tests/lib/libc/gen/t_dir.c:1.7
--- src/tests/lib/libc/gen/t_dir.c:1.6	Sat Oct 19 13:45:00 2013
+++ src/tests/lib/libc/gen/t_dir.c	Tue Jan 10 10:19:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: t_dir.c,v 1.6 2013/10/19 17:45:00 christos Exp $ */
+/* $NetBSD: t_dir.c,v 1.7 2017/01/10 15:19:00 christos Exp $ */
 
 /*-
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -26,18 +26,19 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <atf-c.h>
-
+#include <sys/stat.h>
 #include <assert.h>
+#include <atf-c.h>
 #include <dirent.h>
 #include <err.h>
+#include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
-#include <sys/stat.h>
+
 
 ATF_TC(seekdir_basic);
 ATF_TC_HEAD(seekdir_basic, tc)
@@ -54,10 +55,19 @@ ATF_TC_BODY(seekdir_basic, tc)
 	struct dirent *entry;
 	long here;
 
-	mkdir("t", 0755);
-	creat("t/a", 0600);
-	creat("t/b", 0600);
-	creat("t/c", 0600);
+#define	CREAT(x, m)	do {					\
+		int _creat_fd;					\
+		ATF_REQUIRE_MSG((_creat_fd = creat((x), (m))),	\
+		    "creat(%s, %x) failed: %s", (x), (m),	\
+		    strerror(errno));				\
+		(void)close(_creat_fd);			\
+	} while(0);
+
+	ATF_REQUIRE_MSG(mkdir("t", 0755) == 0,
+	    "mkdir failed: %s", strerror(errno));
+	CREAT("t/a", 0600);
+	CREAT("t/b", 0600);
+	CREAT("t/c", 0600);
 
 	dp = opendir("t");
 	if ( dp == NULL)
@@ -70,6 +80,8 @@ ATF_TC_BODY(seekdir_basic, tc)
 	/* get first entry */
 	entry = readdir(dp);
 	here = telldir(dp);
+	ATF_REQUIRE_MSG(here != -1,
+	    "telldir failed: %s", strerror(errno));
 
 	/* get second entry */
 	entry = readdir(dp);
@@ -109,6 +121,7 @@ ATF_TC_BODY(seekdir_basic, tc)
 		atf_tc_fail("3rd seekdir found wrong name");
 
 	closedir(dp);
+	free(wasname);
 }
 
 ATF_TC(telldir_leak);

Reply via email to