diff --git a/src/helper/log.c b/src/helper/log.c index b38987232eb290b06533bf03d367c0eb07a7e6ed..5127a3731ab28fd06f0bb6193a1ad286c98ad5e7 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -284,9 +284,12 @@ char *alloc_printf(const char *fmt, va_list ap) free(t); return NULL; } - + + va_list ap_copy; + va_copy(ap_copy, ap); + int ret; - ret = vsnprintf(string, size, fmt, ap); + ret = vsnprintf(string, size, fmt, ap_copy); /* NB! The result of the vsnprintf() might be an *EMPTY* string! */ if ((ret >= 0) && ((ret + 1) < size)) break;