sha1_file: correct zlib buffer handlinggirocco/v2.11.4+
commit6fff9917f958d4a6ddc4ba6359fe75d029bf71f1
authorJeremy Linton <lintonrjeremy@gmail.com>
Wed, 13 Jun 2018 14:22:07 +0000 (13 09:22 -0500)
committerKyle J. McKay <mackyle@gmail.com>
Wed, 2 Dec 2020 08:40:37 +0000 (2 01:40 -0700)
tree9310810841c6e792bd292f10a4e7afaa93677e95
parent5513891c211b6c3e42d360eb5191d23faf34cd51
sha1_file: correct zlib buffer handling

The buffer being passed to zlib includes a NUL terminator that git
needs to keep in place. unpack_compressed_entry() attempts to detect
the case that the source buffer hasn't been fully consumed by
checking to see if the destination buffer has been over consumed.

This causes a problem, that more recent zlib patches have been
poisoning the unconsumed portions of the buffer which overwrites
the NUL byte, while correctly returning length and status.

Let's place the NUL at the end of the buffer after inflate returns
to assure that it doesn't result in problems for git even if its
been overwritten by zlib.

Signed-off-by: Jeremy Linton <lintonrjeremy@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_file.c