~mdw
/
sgt
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Note the possibility of a pause due to /dev/random blocking.
[sgt/putty]
/
sshzlib.c
diff --git
a/sshzlib.c
b/sshzlib.c
index
9c80132
..
25ccd25
100644
(file)
--- a/
sshzlib.c
+++ b/
sshzlib.c
@@
-1259,6
+1259,8
@@
int zlib_decompress_block(void *handle, unsigned char *block, int len,
goto finished;
nlen = dctx->bits & 0xFFFF;
EATBITS(16);
goto finished;
nlen = dctx->bits & 0xFFFF;
EATBITS(16);
+ if (dctx->uncomplen != (nlen ^ 0xFFFF))
+ goto decode_error;
if (dctx->uncomplen == 0)
dctx->state = OUTSIDEBLK; /* block is empty */
else
if (dctx->uncomplen == 0)
dctx->state = OUTSIDEBLK; /* block is empty */
else
@@
-1369,6
+1371,7
@@
int main(int argc, char **argv)
const struct ssh_compress ssh_zlib = {
"zlib",
const struct ssh_compress ssh_zlib = {
"zlib",
+ "zlib@openssh.com", /* delayed version */
zlib_compress_init,
zlib_compress_cleanup,
zlib_compress_block,
zlib_compress_init,
zlib_compress_cleanup,
zlib_compress_block,