Re: [PATCH] fread does not return negative on error
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 23, 2009, 23:56 UTC
- Message-ID
- <7vhby64i8f.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <4A3FB479.2090902@lsrfire.ath.cx>
René Scharfe <rene.scharfe@lsrfire.ath.cx> writes:
> the following patch is for git. I just removed the unneeded check for > res == 0 from your version. Does it look OK?
The patch looks good, and both of our in-tree users do error out when the returned value is 0 (imap-send.c checks with "<= 0" which looks a tad amateurish, though) correctly.
Funny, there is no caller of this function in the original context this bug originally found, which I think is linux-2.6/tools/perf ;-).
Thanks.
Show 23 quoted lines
> From: Roel Kluin <roel.kluin@gmail.com> > > size_t res cannot be less than 0. fread returns 0 on error. > > Reported-by: Ingo Molnar <mingo@elte.hu> > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> > --- > strbuf.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/strbuf.c b/strbuf.c > index a884960..f03d117 100644 > --- a/strbuf.c > +++ b/strbuf.c > @@ -260,7 +260,7 @@ size_t strbuf_fread(struct strbuf *sb, size_t size, FILE *f) > res = fread(sb->buf + sb->len, 1, size, f); > if (res > 0) > strbuf_setlen(sb, sb->len + res); > - else if (res < 0 && oldalloc == 0) > + else if (oldalloc == 0) > strbuf_release(sb); > return res; > }