fix hang in git fetch if pointed at a 0 length bundle
git-repo if interupted at the exact wrong time will generate zero length bundles- literal empty files. git-repo is wrong here, but git fetch shouldn't effectively spin loop if pointed at a zero length bundle. Signed-off-by: Brian Harring <ferringb@chromium.org> Helped-by: Johannes Sixt Helped-by: Nguyen Thai Ngoc Duy Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f3f778df69
commit
54440e154f
4
bundle.c
4
bundle.c
@ -31,8 +31,8 @@ static int strbuf_readline_fd(struct strbuf *sb, int fd)
|
||||
while (1) {
|
||||
char ch;
|
||||
ssize_t len = xread(fd, &ch, 1);
|
||||
if (len < 0)
|
||||
return -1;
|
||||
if (len <= 0)
|
||||
return len;
|
||||
strbuf_addch(sb, ch);
|
||||
if (ch == '\n')
|
||||
break;
|
||||
|
@ -53,4 +53,10 @@ test_expect_failure 'bundle --stdin <rev-list options>' '
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'empty bundle file is rejected' '
|
||||
|
||||
>empty-bundle && test_must_fail git fetch empty-bundle
|
||||
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user