diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2013-03-05 17:29:18 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-03-05 17:29:18 +0100 |
commit | dafba9bb99ecee458fc7f6cd37151ae1c91ae522 (patch) | |
tree | cd6c4ecf22d227babaeda9369c03b64151b6e2d9 /vsprintf.c | |
parent | c76a363af8bfc7b83558253fae38ae3d255e0aa9 (diff) | |
download | strace-dafba9bb99ecee458fc7f6cd37151ae1c91ae522.tar.gz strace-dafba9bb99ecee458fc7f6cd37151ae1c91ae522.tar.bz2 strace-dafba9bb99ecee458fc7f6cd37151ae1c91ae522.tar.xz |
strace_vfprintf: if malloc fails, exit gracefully
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'vsprintf.c')
-rw-r--r-- | vsprintf.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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); } |