]> git.meshlink.io Git - catta/commitdiff
properly use va_copy() when iterating more than once through a va_list; fix bad memor...
authorLennart Poettering <lennart@poettering.net>
Sat, 25 Aug 2007 23:16:36 +0000 (23:16 +0000)
committerLennart Poettering <lennart@poettering.net>
Sat, 25 Aug 2007 23:16:36 +0000 (23:16 +0000)
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1524 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe

avahi-common/strlst.c

index 9ffa18e0e75c14e8bb98fe6f7e0ce77a48b641a1..f8be27312bfc1756ae1de8acc2152f6d2faaaa77 100644 (file)
@@ -337,8 +337,11 @@ AvahiStringList *avahi_string_list_add_vprintf(AvahiStringList *l, const char *f
     for (;;) {
         int n;
         AvahiStringList *nr;
+        va_list va2;
         
-        n = vsnprintf((char*) r->text, len+1, format, va);
+        va_copy(va2, va);
+        n = vsnprintf((char*) r->text, len, format, va2);
+        va_end(va2);
 
         if (n >= 0 && n < (int) len)
             break;
@@ -355,7 +358,6 @@ AvahiStringList *avahi_string_list_add_vprintf(AvahiStringList *l, const char *f
 
         r = nr;
     }
-
     
     r->next = l;
     r->size = strlen((char*) r->text);