From: Martin Mares Date: Fri, 15 Apr 2005 21:51:52 +0000 (+0000) Subject: Fix illegal operations with va_list's. X-Git-Tag: holmes-import~788 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=4653232432f5725243c08bc2e720c80a5412d405;p=libucw.git Fix illegal operations with va_list's. --- 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; }