diff options
Diffstat (limited to 'buffer.c')
| -rw-r--r-- | buffer.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -118,8 +118,10 @@ bool buffer_vprintf(Buffer *buf, const char *fmt, va_list ap) { va_list ap_save; va_copy(ap_save, ap); int len = vsnprintf(NULL, 0, fmt, ap); - if (len == -1 || !buffer_grow(buf, len+1)) + if (len == -1 || !buffer_grow(buf, len+1)) { + va_end(ap_save); return false; + } bool ret = vsnprintf(buf->data, len+1, fmt, ap_save) == len; if (ret) buf->len = len+1; |
