зеркало из https://github.com/github/putty.git
ssh.com 3.2.0 uses zlib sync flush (start and close an empty
uncompressed block at the end of each compressed packet) which we were embarrassingly unable to deal with because we assumed every uncompressed block contained at least one byte. Particularly silly because I _knew_ about the existence of sync flush when I coded this module. Arrgh. Still, now fixed. [originally from svn r1824]
This commit is contained in:
Родитель
4abd468e14
Коммит
e8ab511442
|
@ -1164,7 +1164,10 @@ int zlib_decompress_block(unsigned char *block, int len,
|
||||||
goto finished;
|
goto finished;
|
||||||
nlen = dctx.bits & 0xFFFF;
|
nlen = dctx.bits & 0xFFFF;
|
||||||
EATBITS(16);
|
EATBITS(16);
|
||||||
dctx.state = UNCOMP_DATA;
|
if (dctx.uncomplen == 0)
|
||||||
|
dctx.state = OUTSIDEBLK; /* block is empty */
|
||||||
|
else
|
||||||
|
dctx.state = UNCOMP_DATA;
|
||||||
break;
|
break;
|
||||||
case UNCOMP_DATA:
|
case UNCOMP_DATA:
|
||||||
if (dctx.nbits < 8)
|
if (dctx.nbits < 8)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче