Fix: Unchecked asprintf/vasprintf return values
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 12 Jul 2013 17:08:54 +0000 (13:08 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 12 Jul 2013 17:08:54 +0000 (13:08 -0400)
strp·may·be·modified·even·in·case·of·failure·according·to·the
ASPRINTF(3) man page.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
tests/lib/tap.c

index 86c89a23b2a77b8ba1b88652b55e8b40da0bba82..8bf72f6fcde57dac97fd9673cb0df5efdf9b6b0c 100644 (file)
@@ -83,7 +83,9 @@ _gen_result(int ok, const char *func, char *file, unsigned int line,
           expansions on it */
        if(test_name != NULL) {
                va_start(ap, test_name);
-               vasprintf(&local_test_name, test_name, ap);
+               if (vasprintf(&local_test_name, test_name, ap) == -1) {
+                       local_test_name = NULL;
+               }
                va_end(ap);
 
                /* Make sure the test name contains more than digits
@@ -299,7 +301,9 @@ skip(unsigned int n, char *fmt, ...)
        LOCK;
 
        va_start(ap, fmt);
-       asprintf(&skip_msg, fmt, ap);
+       if (asprintf(&skip_msg, fmt, ap) == -1) {
+               skip_msg = NULL;
+       }
        va_end(ap);
 
        while(n-- > 0) {
@@ -324,7 +328,9 @@ todo_start(char *fmt, ...)
        LOCK;
 
        va_start(ap, fmt);
-       vasprintf(&todo_msg, fmt, ap);
+       if (vasprintf(&todo_msg, fmt, ap) == -1) {
+               todo_msg = NULL;
+       }
        va_end(ap);
 
        todo = 1;
This page took 0.024705 seconds and 4 git commands to generate.