tests: avoid passing NULL strings to vprintf 77/12377/3
authorMichael Meffie <mmeffie@sinenomine.net>
Mon, 22 Aug 2016 23:53:34 +0000 (19:53 -0400)
committerBenjamin Kaduk <kaduk@mit.edu>
Sun, 25 Sep 2016 22:45:44 +0000 (18:45 -0400)
Some libc implementations will crash when NULL string arguments are given to
*printf.  Avoid passing NULL string arguments in the make check tests that did
so, and pass the string "(null)" instead.

Change-Id: I65f11a3eef88d1c7b210c867ae0c40018160f55a
Reviewed-on: https://gerrit.openafs.org/12377
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

tests/util/exec-alt-t.c

index 69a41c0..07f3d2c 100644 (file)
@@ -24,6 +24,7 @@
 
 #define FAILSTR "exec test failure\n"
 #define ARGSTRING "teststring"
+#define PSTR(s) ((s) != NULL ? (s) : "(null)")
 
 static struct exec_test {
     const char *prefix; /* program prefix to run */
@@ -196,7 +197,7 @@ main(int argc, char **argv)
            nBytes = read(fds[0], buf, sizeof(buf)-1);
            is_int(result_len, nBytes,
                   "child output size for prefix=%s, suffix=%s",
-                  t->prefix, t->suffix);
+                  PSTR(t->prefix), PSTR(t->suffix));
 
            if (nBytes < 0) {
                skip("read() failed; cannot test read buffer");
@@ -206,7 +207,7 @@ main(int argc, char **argv)
 
                is_string(result, buf,
                          "child output for prefix=%s, suffix=%s",
-                         t->prefix, t->suffix);
+                         PSTR(t->prefix), PSTR(t->suffix));
            }
 
            if (close(fds[0])) {
@@ -225,12 +226,12 @@ main(int argc, char **argv)
            }
 
            ok(WIFEXITED(status), "child exited for prefix=%s, suffix=%s",
-                                 t->prefix, t->suffix);
+                                 PSTR(t->prefix), PSTR(t->suffix));
 
            if (WIFEXITED(status)) {
                is_int(0, WEXITSTATUS(status),
                       "child exit code for prefix=%s, suffix=%s",
-                      t->prefix, t->suffix);
+                      PSTR(t->prefix), PSTR(t->suffix));
            } else {
                skip("!WIFEXITED(status) (status=%d), cannot check exit code",
                     status);