Re: [PATCH] Avoid allocating 0 bytes, was Re: [PATCH 4/4] git-compat-util.h: dietlibc-friendly x{malloc,realloc,calloc}
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Dec 28, 2005, 20:38 UTC
- Message-ID
- <Pine.LNX.4.63.0512282134380.2236@wbgn013.biozentrum.uni-wuerzburg.de>
- In-Reply-To
- <Pine.LNX.4.63.0512262134290.19331@wbgn013.biozentrum.uni-wuerzburg.de>
Hi,
On Mon, 26 Dec 2005, Johannes Schindelin wrote:
Show 24 quoted lines
> On Mon, 26 Dec 2005, Junio C Hamano wrote: > > > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > > > diff --git a/csum-file.c b/csum-file.c > > > index 5f9249a..2c0f097 100644 > > > --- a/csum-file.c > > > +++ b/csum-file.c > > > @@ -121,6 +121,9 @@ int sha1write_compressed(struct sha1file > > > unsigned long maxsize; > > > void *out; > > > > > > + if (size == 0) > > > + return 0; > > > + > > > memset(&stream, 0, sizeof(stream)); > > > deflateInit(&stream, Z_DEFAULT_COMPRESSION); > > > maxsize = deflateBound(&stream, size); > > > > I think this and the one in sha1_file.c::write_sha1_file() are > > wrong; 0-size input would not result in 0-size output. Have you > > tested them by actually exercising the codepaths you touched? > > No, I did not test them.
Now I did. To make a long story short: this patch is wrong, wrong, wrong. Further, I think it is safe to assume that deflateBound() returns > 0.
Ciao, Dscho