From: Junio C Hamano Date: Tue, 03 Jan 2012 20:11:24 GMT Subject: Re: [PATCH] fix hang in git fetch if pointed at a 0 length bundle Message-ID: <7vboqktukz.fsf@alter.siamese.dyndns.org> In-Reply-To: Nguyen Thai Ngoc Duy writes: > On Tue, Jan 3, 2012 at 8:13 AM, Brian Harring wrote: >> @@ -31,7 +31,7 @@ static int strbuf_readline_fd(struct strbuf *sb, int fd) >>        while (1) { >>                char ch; >>                ssize_t len = xread(fd, &ch, 1); >> -               if (len < 0) >> +               if (len <= 0) >>                        return -1; >>                strbuf_addch(sb, ch); >>                if (ch == '\n') > > I think it should return 0 when len == 0 because strictly speaking eof > is not a fault. Even if you do not strictly speak, end of file is a perfectly normal thing to see, no? IOW wouldn't the original patch actively _break_ callers that read the whole file from the file descriptor to the end? > FWIW I went through all xread call sites. All seem to handle return > value <= 0 correctly. Thanks.