From 4653232432f5725243c08bc2e720c80a5412d405 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 15 Apr 2005 21:51:52 +0000 Subject: [PATCH] Fix illegal operations with va_list's. --- lib/mempool-str.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/mempool-str.c b/lib/mempool-str.c index 0da43e16..360a3b95 100644 --- a/lib/mempool-str.c +++ b/lib/mempool-str.c @@ -29,25 +29,27 @@ mp_multicat(struct mempool *p, ...) va_start(args, p); char *x, *y; uns cnt = 0; - a = args; + va_copy(a, args); while (x = va_arg(a, char *)) cnt++; uns *sizes = alloca(cnt * sizeof(uns)); uns len = 1; cnt = 0; - a = args; + va_end(a); + va_copy(a, args); while (x = va_arg(a, char *)) len += sizes[cnt++] = strlen(x); char *buf = mp_alloc_fast_noalign(p, len); y = buf; - a = args; + va_end(a); cnt = 0; - while (x = va_arg(a, char *)) + while (x = va_arg(args, char *)) { memcpy(y, x, sizes[cnt]); y += sizes[cnt++]; } *y = 0; + va_end(args); return buf; } -- 2.39.2