diff --git a/strbuf.c b/strbuf.c
index f4201e160de2ccb9f2d9adef695c73a124e676d5..cbada946c4e73a403cb2d237f8aebfcda5c88ac4 100644 (file)
--- a/strbuf.c
+++ b/strbuf.c
int len;
va_list ap;
+ if (!strbuf_avail(sb))
+ strbuf_grow(sb, 64);
va_start(ap, fmt);
len = vsnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap);
va_end(ap);
- if (len < 0) {
- len = 0;
- }
+ if (len < 0)
+ die("your vsnprintf is broken");
if (len > strbuf_avail(sb)) {
strbuf_grow(sb, len);
va_start(ap, fmt);