Code

Fix rev-list when showing objects involving submodules
[git.git] / strbuf.c
index f4201e160de2ccb9f2d9adef695c73a124e676d5..cbada946c4e73a403cb2d237f8aebfcda5c88ac4 100644 (file)
--- a/strbuf.c
+++ b/strbuf.c
@@ -111,12 +111,13 @@ void strbuf_addf(struct strbuf *sb, const char *fmt, ...)
        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);