moor boogz
authormiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 3 Aug 2005 15:03:42 +0000 (15:03 +0000)
committermiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 3 Aug 2005 15:03:42 +0000 (15:03 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@456 9efc2488-bf62-4759-914b-345cdb29e865

src/utils/utils.c

index 60d665a..830861a 100644 (file)
@@ -105,10 +105,18 @@ int buffer_fadd(growing_buffer* gb, const char* format, ... ) {
 
        if(!gb || !format) return 0; 
 
+       int len = 0;
        va_list args;
+       va_list a_copy;
+
+       char* f_copy = strdup(format);
+
+       va_copy(a_copy,args);
+
+       va_start(a_copy, f_copy);
+       len = vsnprintf(NULL, 0, f_copy, a_copy);
+       va_end(a_copy);
 
-       va_start(args, format);
-       int len = vsnprintf(NULL, 0, format, args);
        len += 1;
 
        char buf[len];
@@ -118,6 +126,8 @@ int buffer_fadd(growing_buffer* gb, const char* format, ... ) {
        vsnprintf(buf, len - 1, format, args);
        va_end(args);
 
+       free(f_copy);
+
        return buffer_add(gb, buf);
 
 }