|
|
@@ -0,0 +1,40 @@
|
|
|
+diff -u3 zlib-1.1.3/infblock.c zlib-1.1.4/infblock.c
|
|
|
+--- zlib-1.1.3/infblock.c Mon Jun 8 19:06:16 1998
|
|
|
++++ zlib-1.1.4/infblock.c Mon Mar 11 14:16:01 2002
|
|
|
+@@ -249,10 +249,12 @@
|
|
|
+ &s->sub.trees.tb, s->hufts, z);
|
|
|
+ if (t != Z_OK)
|
|
|
+ {
|
|
|
+- ZFREE(z, s->sub.trees.blens);
|
|
|
+ r = t;
|
|
|
+ if (r == Z_DATA_ERROR)
|
|
|
++ {
|
|
|
++ ZFREE(z, s->sub.trees.blens);
|
|
|
+ s->mode = BAD;
|
|
|
++ }
|
|
|
+ LEAVE
|
|
|
+ }
|
|
|
+ s->sub.trees.index = 0;
|
|
|
+@@ -313,11 +315,13 @@
|
|
|
+ t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),
|
|
|
+ s->sub.trees.blens, &bl, &bd, &tl, &td,
|
|
|
+ s->hufts, z);
|
|
|
+- ZFREE(z, s->sub.trees.blens);
|
|
|
+ if (t != Z_OK)
|
|
|
+ {
|
|
|
+ if (t == (uInt)Z_DATA_ERROR)
|
|
|
++ {
|
|
|
++ ZFREE(z, s->sub.trees.blens);
|
|
|
+ s->mode = BAD;
|
|
|
++ }
|
|
|
+ r = t;
|
|
|
+ LEAVE
|
|
|
+ }
|
|
|
+@@ -329,6 +333,7 @@
|
|
|
+ }
|
|
|
+ s->sub.decode.codes = c;
|
|
|
+ }
|
|
|
++ ZFREE(z, s->sub.trees.blens);
|
|
|
+ s->mode = CODES;
|
|
|
+ case CODES:
|
|
|
+ UPDATE
|