strbuf: make sure buffer is zero-terminated
authorErik Faye-Lund <kusmabite@gmail.com>
Sun, 10 Apr 2011 20:54:17 +0000 (22:54 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 Apr 2011 21:10:05 +0000 (14:10 -0700)
strbuf_init does not zero-terminate the initial buffer when hint is
non-zero. Fix this so we can rely on the string to be zero-terminated
even if we haven't filled it with anything yet.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
strbuf.c

index bc3a080..73e0400 100644 (file)
--- a/strbuf.c
+++ b/strbuf.c
@@ -30,8 +30,10 @@ void strbuf_init(struct strbuf *sb, size_t hint)
 {
        sb->alloc = sb->len = 0;
        sb->buf = strbuf_slopbuf;
-       if (hint)
+       if (hint) {
                strbuf_grow(sb, hint);
+               sb->buf[0] = '\0';
+       }
 }
 
 void strbuf_release(struct strbuf *sb)