提交 54440e15 编写于 作者: B Brian Harring 提交者: Junio C Hamano

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: NBrian Harring <ferringb@chromium.org>
Helped-by: Johannes Sixt
Helped-by: Nguyen Thai Ngoc Duy
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 f3f778df
......@@ -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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册