diff options
Diffstat (limited to 'compat/asprintf.c')
-rw-r--r-- | compat/asprintf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compat/asprintf.c b/compat/asprintf.c index 29d3fb88..861232a5 100644 --- a/compat/asprintf.c +++ b/compat/asprintf.c @@ -44,12 +44,15 @@ int vasprintf(char **ret, const char *fmt, va_list ap) { int n; + va_list ap2; + + va_copy(ap2, ap); if ((n = vsnprintf(NULL, 0, fmt, ap)) < 0) goto error; *ret = xmalloc(n + 1); - if ((n = vsnprintf(*ret, n + 1, fmt, ap)) < 0) { + if ((n = vsnprintf(*ret, n + 1, fmt, ap2)) < 0) { xfree(*ret); goto error; } |