txlyre il y a 11 heures
Parent
commit
bf4d015ac1
1 fichiers modifiés avec 8 ajouts et 4 suppressions
  1. 8 4
      qic.c

+ 8 - 4
qic.c

@@ -253,14 +253,18 @@ void buffer_appendb(buffer_t *dst, buffer_t *src) {
 
 void buffer_fmt(buffer_t *buf, const char *fmt, ...) {
   va_list args;
-  va_start(args, fmt);
+  va_list largs;
+
+  va_start(largs, fmt);
+  va_copy(args, largs);
 
-  size_t size = vsnprintf(NULL, 0, fmt, args);
-  char *str = malloc(sizeof(char) * (size + 1));
+  size_t size = vsnprintf(NULL, 0, fmt, largs) + 1;
+  char *str = malloc(sizeof(char) * size);
 
-  vsnprintf(str, size + 1, fmt, args);
+  vsnprintf(str, size, fmt, args);
 
   va_end(args);
+  va_end(largs);
 
   buffer_appends(buf, str);
 }