home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!news.claremont.edu!nntp-server.caltech.edu!madler
- From: madler@cco.caltech.edu (Mark Adler)
- Newsgroups: comp.compression
- Subject: Re: pkzip 2.04c / unzip v5.0 compatibility
- Date: 6 Jan 1993 17:20:38 GMT
- Organization: California Institute of Technology, Pasadena
- Lines: 64
- Distribution: world
- Message-ID: <1if4d6INNpgs@gap.caltech.edu>
- References: <1ied29INN37p@butler.cc.tut.fi>
- NNTP-Posting-Host: sandman.caltech.edu
-
-
- >> Unzip gives an error message 'BAD CRC 00000000 should be 629643f6'.
- ...
- >> pkunzip 2.04c gets the CRCs ok.
-
- Just to let you know that we're on top of things, here are some
- quickie diffs for inflate.c in Unzip 5.0 to allow it to unzip
- anything pkzip 2.04c can make (so far). Basically, inflate.c
- is calling deflated entries bad when they are not, in one case
- because of an apparent change between pkzip 1.93a and 2.04c,
- and in the other case because of a mistake on my part. For those
- of you testing Unzip 5.0 with files made by pkzip 2.04c, please
- apply these patches to inflate.c and recompile Unzip 5.0. If
- you encounter more problems, please let us know at:
-
- zip-bugs@wkuvx1.bitnet
-
- Thanks.
-
- Mark Adler
- madler@cco.caltech.edu
-
- *** inflate.c.50 Thu Aug 13 19:46:16 1992
- --- inflate.c Wed Jan 6 09:15:01 1993
- ***************
- *** 324,331 ****
- do {
- c[*p++]++; /* assume all entries <= BMAX */
- } while (--i);
- ! if (c[0] == n)
- ! return 2; /* bad input--all zero length codes */
-
-
- /* Find minimum and maximum length, bound *m by those */
- --- 324,335 ----
- do {
- c[*p++]++; /* assume all entries <= BMAX */
- } while (--i);
- ! if (c[0] == n) /* null input--all zero length codes */
- ! {
- ! *t = (struct huft *)NULL;
- ! *m = 0;
- ! return 0;
- ! }
-
-
- /* Find minimum and maximum length, bound *m by those */
- ***************
- *** 469,475 ****
-
-
- /* Return true (1) if we were given an incomplete table */
- ! return y != 0 && n != 1;
- }
-
-
- --- 473,479 ----
-
-
- /* Return true (1) if we were given an incomplete table */
- ! return y != 0 && g != 1;
- }
-
-
-