Fix vasprintf() for empty strings.
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Tue, 29 Mar 2011 03:22:23 +0000 (23:22 -0400)
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Tue, 29 Mar 2011 03:24:35 +0000 (23:24 -0400)
James Bellinger entered bug #682963 and he ended up debugging it and
providing the solution.

eglib/src/vasprintf.c

index 56e1971c681b6a25263e5d0f75214c43091bd558..3c21ca4dc0ab9efea7452db19e6fdd0ec78ded91 100644 (file)
@@ -17,7 +17,7 @@ int vasprintf(char **ret, const char *fmt, va_list ap)
        len = vsnprintf(NULL, 0, fmt, ap2);
 #endif
        
-       if (len > 0 && (buf = malloc((buflen = (size_t) (len + 1)))) != NULL) {
+       if (len >= 0 && (buf = malloc ((buflen = (size_t) (len + 1)))) != NULL) {
                len = vsnprintf(buf, buflen, fmt, ap);
                *ret = buf;
        } else {
@@ -28,3 +28,4 @@ int vasprintf(char **ret, const char *fmt, va_list ap)
        va_end(ap2);
        return len;
 }
+