From e9ebdac3dd1f4313cd9ce02e08cdc2f5f1ee0287 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Mon, 25 Jul 2011 09:56:43 +0000 Subject: [PATCH] Can't use the same va_list twice, from Emanuele Giaquinta. --- compat/asprintf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; }