diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/asprintf.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/asprintf.c b/src/asprintf.c index d493fcb..3165db5 100644 --- a/src/asprintf.c +++ b/src/asprintf.c @@ -39,7 +39,12 @@ grecs_vasprintf(char **pbuf, size_t *psize, const char *fmt, va_list ap) } for (;;) { - ssize_t n = vsnprintf(buf, buflen, fmt, ap); + va_list aq; + ssize_t n; + + va_copy(aq, ap); + n = vsnprintf(buf, buflen, fmt, aq); + va_end(aq); if (n < 0 || n >= buflen || !memchr(buf, '\0', n + 1)) { char *newbuf; size_t newlen = buflen * 2; |