]> granicus.if.org Git - strace/commitdiff
strace_vfprintf: if malloc fails, exit gracefully
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 5 Mar 2013 16:29:18 +0000 (17:29 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 5 Mar 2013 16:29:18 +0000 (17:29 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
vsprintf.c

index b66609ac79beb5768421dcbdbdf301883ab1db0a..f6019f0e16ba271a25c7dcccfe92a1218228b331 100644 (file)
@@ -759,8 +759,8 @@ int kernel_vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
 
 int strace_vfprintf(FILE *fp, const char *fmt, va_list args)
 {
-       static char *buf;
-       static unsigned buflen;
+       static char *buf = NULL;
+       static unsigned buflen = 0;
 
        int r;
        va_list a1;
@@ -773,6 +773,8 @@ int strace_vfprintf(FILE *fp, const char *fmt, va_list args)
                buflen = len + 256;
                free(buf);
                buf = malloc(buflen);
+               if (!buf)
+                       die_out_of_memory();
                /*len =*/ kernel_vsnprintf(buf, buflen, fmt, args);
        }