Jeff King <peff@xxxxxxxx> writes: > Not a big rush for 2.8.0-rc, as the bug is in v2.5.0, and I doubt > there's an easy trigger besides fast-import. But it might be harmless > enough to squeeze in. Was it found by a real-world debugging session, or by a code inspection? I'd be really impressed if it were the latter ;-) Thanks, will queue. > strbuf.c | 8 +++++++- > t/t9300-fast-import.sh | 4 ++++ > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/strbuf.c b/strbuf.c > index f60e2ee..2c08dbb 100644 > --- a/strbuf.c > +++ b/strbuf.c > @@ -481,9 +481,15 @@ int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term) > if (errno == ENOMEM) > die("Out of memory, getdelim failed"); > > - /* Restore slopbuf that we moved out of the way before */ > + /* > + * Restore strbuf invariants; if getdelim left us with a NULL pointer, > + * we can just re-init, but otherwise we should make sure that our > + * length is empty, and that the result is NUL-terminated. > + */ > if (!sb->buf) > strbuf_init(sb, 0); > + else > + strbuf_reset(sb); > return EOF; > } > #else > diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh > index 4c5f3c9..25bb60b 100755 > --- a/t/t9300-fast-import.sh > +++ b/t/t9300-fast-import.sh > @@ -55,6 +55,10 @@ test_expect_success 'empty stream succeeds' ' > git fast-import </dev/null > ' > > +test_expect_success 'truncated stream complains' ' > + echo "tag foo" | test_must_fail git fast-import > +' > + > test_expect_success 'A: create pack from stdin' ' > test_tick && > cat >input <<-INPUT_END && -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html