diff --git a/utils.c b/utils.c index cc5bf3b223658664d0d4970084d578301bd7cc45..069eb65d6ef9ddd1062de7383d747480efa43b01 100755 --- a/utils.c +++ b/utils.c @@ -617,17 +617,17 @@ int vasprintf(char **strp, const char *fmt, va_list ap) { int size; va_list ap2; + char s; *strp = NULL; va_copy(ap2, ap); - size = vsnprintf(*strp, 0, fmt, ap2); + size = vsnprintf(&s, 1, fmt, ap2); va_end(ap2); *strp = malloc(size + 1); if (!*strp) return -1; - va_start(fmt, ap); vsnprintf(*strp, size + 1, fmt, ap); - va_end(ap); + free(*strp); return size; }