diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2013-12-30 10:24:20 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2013-12-30 10:24:20 (GMT) |
commit | ea905988fa8cfecafe48a591a899f1275d7d3ca3 (patch) | |
tree | 9dd08e96712d0bbeb26b46b3c2ac5d1312d63be7 /compat/zlib/contrib/puff/puff.c | |
parent | 48d8cf61b7fd0af160956618fdf9e4cbccebf078 (diff) | |
parent | 1749e8cdf33e8232f22acc08f9ce4301b00ba7eb (diff) | |
download | tcl-ea905988fa8cfecafe48a591a899f1275d7d3ca3.zip tcl-ea905988fa8cfecafe48a591a899f1275d7d3ca3.tar.gz tcl-ea905988fa8cfecafe48a591a899f1275d7d3ca3.tar.bz2 |
merge main working branch
Diffstat (limited to 'compat/zlib/contrib/puff/puff.c')
-rw-r--r-- | compat/zlib/contrib/puff/puff.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compat/zlib/contrib/puff/puff.c b/compat/zlib/contrib/puff/puff.c index df8470c..ba58483 100644 --- a/compat/zlib/contrib/puff/puff.c +++ b/compat/zlib/contrib/puff/puff.c @@ -1,8 +1,8 @@ /* * puff.c - * Copyright (C) 2002-2010 Mark Adler + * Copyright (C) 2002-2013 Mark Adler * For conditions of distribution and use, see copyright notice in puff.h - * version 2.2, 25 Apr 2010 + * version 2.3, 21 Jan 2013 * * puff.c is a simple inflate written to be an unambiguous way to specify the * deflate format. It is not written for speed but rather simplicity. As a @@ -76,6 +76,7 @@ * - Move NIL to puff.h * - Allow incomplete code only if single code length is 1 * - Add full code coverage test to Makefile + * 2.3 21 Jan 2013 - Check for invalid code length codes in dynamic blocks */ #include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */ @@ -704,6 +705,8 @@ local int dynamic(struct state *s) int len; /* last length to repeat */ symbol = decode(s, &lencode); + if (symbol < 0) + return symbol; /* invalid symbol */ if (symbol < 16) /* length in 0..15 */ lengths[index++] = symbol; else { /* repeat instruction */ |