Index: utils.c =================================================================== --- utils.c (revision 8070) +++ utils.c (working copy) @@ -997,17 +997,15 @@ { char s; size_t needed; - va_list ap1, ap2; + va_list ap; - va_start(ap1, format); - va_copy(ap2, ap1); + va_start(ap, format); + needed = vsnprintf(&s, 1, format, ap) + 1; + va_end(ap); - needed = vsnprintf(&s, 1, format, ap1) + 1; - - va_end(ap1); - - if ((fields[index] = __ast_string_field_alloc_space(pool, needed, fields, num_fields))) - vsprintf((char *) fields[index], format, ap2); - - va_end(ap2); + if ((fields[index] = __ast_string_field_alloc_space(pool, needed, fields, num_fields))) { + va_start(ap, format); + vsprintf((char *) fields[index], format, ap); + va_end(ap); + } }