X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=sha1_file.c;h=63981fb3fd9cfa6cca4126eba5a964b449c62444;hb=03c6e97f809e5b89089a2c689d6a319e8d471455;hp=4ea0b18d0aaeca48ed75ed21863195c5ce830cbc;hpb=bf8fc21c69559684b81669ab929db2ff1f37b3d7;p=git.git diff --git a/sha1_file.c b/sha1_file.c index 4ea0b18d0..63981fb3f 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1587,13 +1587,15 @@ static void *unpack_compressed_entry(struct packed_git *p, buffer[size] = 0; memset(&stream, 0, sizeof(stream)); stream.next_out = buffer; - stream.avail_out = size; + stream.avail_out = size + 1; git_inflate_init(&stream); do { in = use_pack(p, w_curs, curpos, &stream.avail_in); stream.next_in = in; st = git_inflate(&stream, Z_FINISH); + if (!stream.avail_out) + break; /* the payload is larger than it should be */ curpos += stream.next_in - in; } while (st == Z_OK || st == Z_BUF_ERROR); git_inflate_end(&stream);