aboutsummaryrefslogtreecommitdiff
path: root/compat/asprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'compat/asprintf.c')
-rw-r--r--compat/asprintf.c5
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;
}