Thomas Rast <trast@xxxxxxxxxxxxxxx> writes: > diff --git a/bundle.c b/bundle.c > index 313de42..0dbd174 100644 > --- a/bundle.c > +++ b/bundle.c > @@ -234,7 +234,7 @@ int create_bundle(struct bundle_header *header, const char *path, > const char **argv_boundary = xmalloc((argc + 4) * sizeof(const char *)); > const char **argv_pack = xmalloc(6 * sizeof(const char *)); > int i, ref_count = 0; > - char buffer[1024]; > + struct strbuf buf = STRBUF_INIT; > struct rev_info revs; > struct child_process rls; > FILE *rls_fout; > @@ -266,16 +266,16 @@ int create_bundle(struct bundle_header *header, const char *path, > if (start_command(&rls)) > return -1; > rls_fout = xfdopen(rls.out, "r"); > - while (fgets(buffer, sizeof(buffer), rls_fout)) { > + while (strbuf_getwholeline(&buf, rls_fout, '\n') != EOF) { I'd add strbuf_release(&buf) after this loop. Perhaps we would want to squash something like this to the test to avoid "seq", using J6t's idea. The issue is that we do not write the end of line for the long boundary (because it is hidden from us), keep reading and rejecting bogus letters, and then the tip is written without terminating the boundary line. So checking boundary line is not a very useful test, but "fetch" and "list-heads" are. t/t5704-bundle.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh index 7c2f307..5319b84 100755 --- a/t/t5704-bundle.sh +++ b/t/t5704-bundle.sh @@ -59,19 +59,20 @@ test_expect_success 'empty bundle file is rejected' ' ' -# If "ridiculous" is at least 1004 chars, this traps a bug in old -# versions where the resulting 1025-char line (with --pretty=oneline) -# was longer than a 1024-char buffer +# This triggers a bug in older versions where the resulting line (with +# --pretty=oneline) was longer than a 1024-char buffer. test_expect_success 'ridiculously long subject in boundary' ' - : > file4 && + : >file4 && test_tick && git add file4 && - printf "abcdefghijkl %s\n" $(seq 1 100) | git commit -F - && + printf "%0982d\n" 0 | git commit -F - && test_commit fifth && git bundle create long-subject-bundle.bdl HEAD^..HEAD && + git bundle list-heads long-subject-bundle.bdl >heads && + test -s heads && git fetch long-subject-bundle.bdl && - sed -n "/^-/{p;q}" long-subject-bundle.bdl > boundary && + sed -n "/^-/{p;q}" long-subject-bundle.bdl >boundary && grep "^-$_x40 " boundary ' -- 1.7.9.2.258.g4407a -- 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