]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
ssh.com 3.2.0 uses zlib sync flush (start and close an empty
authorSimon Tatham <anakin@pobox.com>
Thu, 8 Aug 2002 17:03:58 +0000 (17:03 +0000)
committerSimon Tatham <anakin@pobox.com>
Thu, 8 Aug 2002 17:03:58 +0000 (17:03 +0000)
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]

sshzlib.c

index dc23f5ccb36f5f47c691e090c9550c04fca0eb9d..91b29a0e22b7bee08b5a160e5e9f9c0f98a31744 100644 (file)
--- a/sshzlib.c
+++ b/sshzlib.c
@@ -1164,7 +1164,10 @@ int zlib_decompress_block(unsigned char *block, int len,
                goto finished;
            nlen = dctx.bits & 0xFFFF;
            EATBITS(16);
-           dctx.state = UNCOMP_DATA;
+           if (dctx.uncomplen == 0)
+               dctx.state = OUTSIDEBLK;        /* block is empty */
+           else
+               dctx.state = UNCOMP_DATA;
            break;
          case UNCOMP_DATA:
            if (dctx.nbits < 8)