aboutsummaryrefslogtreecommitdiff
path: root/compat/asprintf.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2011-07-25 09:56:43 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2011-07-25 09:56:43 +0000
commite9ebdac3dd1f4313cd9ce02e08cdc2f5f1ee0287 (patch)
treee2d511a587e63d7040c3790eb7e996d05d8afb2e /compat/asprintf.c
parent5339b8ce3a09df8690fa07440e858e512f5f050f (diff)
downloadrtmux-e9ebdac3dd1f4313cd9ce02e08cdc2f5f1ee0287.tar.gz
rtmux-e9ebdac3dd1f4313cd9ce02e08cdc2f5f1ee0287.tar.bz2
rtmux-e9ebdac3dd1f4313cd9ce02e08cdc2f5f1ee0287.zip
Can't use the same va_list twice, from Emanuele Giaquinta.
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;
}