Fix inflateInit2() bug when windowBits is 16 or 32.
A windowBits value of 0, 16, or 32 gets the window bits from the zlib header. However there is no zlib header for 16, or for 32 when the input is gzip. This commit sets the window bits for inflate to 15 if a gzip stream is detected and windowBits was 16 or 32.
This commit is contained in:
parent
b56d1c62ee
commit
0db8fd3714
@ -645,6 +645,8 @@ int flush;
|
|||||||
NEEDBITS(16);
|
NEEDBITS(16);
|
||||||
#ifdef GUNZIP
|
#ifdef GUNZIP
|
||||||
if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */
|
if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */
|
||||||
|
if (state->wbits == 0)
|
||||||
|
state->wbits = 15;
|
||||||
state->check = crc32(0L, Z_NULL, 0);
|
state->check = crc32(0L, Z_NULL, 0);
|
||||||
CRC2(state->check, hold);
|
CRC2(state->check, hold);
|
||||||
INITBITS();
|
INITBITS();
|
||||||
|
Loading…
Reference in New Issue
Block a user