diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2013-11-28 00:07:53 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2013-11-28 00:07:53 +0000 |
commit | 9dd1c4b8f742632caabca69c0071f95587012d12 (patch) | |
tree | feda5adb603977fb42bc04911342b1c4d6629839 /lib/util/nstring.c | |
parent | 819d681f0091fc68ef2c879498680845db42c49e (diff) | |
download | netpbm-mirror-9dd1c4b8f742632caabca69c0071f95587012d12.tar.gz netpbm-mirror-9dd1c4b8f742632caabca69c0071f95587012d12.tar.xz netpbm-mirror-9dd1c4b8f742632caabca69c0071f95587012d12.zip |
Fix: wrong check or no check for asprintf/vasprintf failure
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@2041 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/util/nstring.c')
-rw-r--r-- | lib/util/nstring.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/util/nstring.c b/lib/util/nstring.c index ef47cbe1..bb2ba92e 100644 --- a/lib/util/nstring.c +++ b/lib/util/nstring.c @@ -791,9 +791,12 @@ pm_asprintf(const char ** const resultP, va_list varargs; #if HAVE_VASPRINTF + int rc; va_start(varargs, fmt); - vasprintf((char **)&result, fmt, varargs); + rc = vasprintf((char **)&result, fmt, varargs); va_end(varargs); + if (rc < 0) + result = pm_strsol; #else size_t dryRunLen; @@ -805,7 +808,7 @@ pm_asprintf(const char ** const resultP, if (dryRunLen + 1 < dryRunLen) /* arithmetic overflow */ - result = NULL; + result = pm_strsol; else { size_t const allocSize = dryRunLen + 1; char * buffer; |