Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > 2e8aadab3d1e358e70cd5d3d33298f8b > files > 7

gzip-1.5-3.mga3.src.rpm

--- gzip-1.5/unpack.c.4336	1999-10-06 07:00:00.000000000 +0200
+++ gzip-1.5/unpack.c	2006-09-07 10:49:08.000000000 +0200
@@ -145,7 +145,7 @@
         /* Remember where the literals of this length start in literal[] : */
         lit_base[len] = base;
         /* And read the literals: */
-        for (n = leaves[len]; n > 0; n--) {
+        for (n = leaves[len]; n > 0 && base < LITERALS; n--) {
             literal[base++] = (uch)get_byte();
         }
     }
@@ -181,7 +181,7 @@
     prefixp = &prefix_len[1<<peek_bits];
     for (len = 1; len <= peek_bits; len++) {
         int prefixes = leaves[len] << (peek_bits-len); /* may be 0 */
-        while (prefixes--) *--prefixp = (uch)len;
+        while (prefixes-- && prefixp > prefix_len) *--prefixp = (uch)len;
     }
     /* The length of all other codes is unknown: */
     while (prefixp > prefix_len) *--prefixp = 0;