}
char *avahi_strdup_vprintf(const char *fmt, va_list ap) {
- size_t len = 100;
+ size_t len = 80;
char *buf;
assert(fmt);
for (;;) {
int n;
char *nbuf;
+ va_list ap2;
+
+ va_copy (ap2, ap);
- n = vsnprintf(buf, len, fmt, ap);
+ n = vsnprintf(buf, len, fmt, ap2);
+
+ va_end (ap2);
if (n >= 0 && n < (int) len)
return buf;