diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2011-07-25 09:56:43 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2011-07-25 09:56:43 +0000 |
commit | e9ebdac3dd1f4313cd9ce02e08cdc2f5f1ee0287 (patch) | |
tree | e2d511a587e63d7040c3790eb7e996d05d8afb2e /compat/asprintf.c | |
parent | 5339b8ce3a09df8690fa07440e858e512f5f050f (diff) | |
download | rtmux-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.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; } |