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

Return to:

Send suggestions and report system problems to the System administrator.