[PATCH 1/2] inflate_codes(): Add fix from upstream gzip to prevent false CRC error

Rob Landley rob at landley.net
Sun Feb 14 09:05:42 UTC 2010


On Thursday 11 February 2010 16:57:36 Denys Vlasenko wrote:
> On Monday 08 February 2010 18:55, Joakim Tjernlund wrote:
> > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund at transmode.se>
> > ---
> >  archival/libunarchive/decompress_unzip.c |    5 ++++-
> >  1 files changed, 4 insertions(+), 1 deletions(-)
> >
> > diff --git a/archival/libunarchive/decompress_unzip.c
> > b/archival/libunarchive/decompress_unzip.c index feaa047..c616202 100644
> > --- a/archival/libunarchive/decompress_unzip.c
> > +++ b/archival/libunarchive/decompress_unzip.c
> > @@ -575,13 +575,16 @@ static NOINLINE int inflate_codes(STATE_PARAM_ONLY)
> >  			do {
> >  				/* Was: nn -= (e = (e = GUNZIP_WSIZE - ((dd &= GUNZIP_WSIZE - 1) > w
> > ? dd : w)) > nn ? nn : e); */ /* Who wrote THAT?? rewritten as: */
> > +				unsigned int delta;
> > +
> >  				dd &= GUNZIP_WSIZE - 1;
> >  				e = GUNZIP_WSIZE - (dd > w ? dd : w);
> > +				delta = w > dd ? w - dd : dd - w;
> >  				if (e > nn) e = nn;
> >  				nn -= e;
> >
> >  				/* copy to new buffer to prevent possible overwrite */
> > -				if (w - dd >= e) {	/* (this test assumes unsigned comparison) */
> > +				if (delta >= e) {
> >  					memcpy(gunzip_window + w, gunzip_window + dd, e);
> >  					w += e;
> >  					dd += e;
>
> Applied, thanks!

The last gplv2-compatible release of gzip was 1.3.12, released in 2007.  Both 
1.3.13 and 1.4 are GPLv3-only.  The above is a diff from 1.3.13 to 1.4, 
including the name of the new variable "delta".

So it looks like you've just introduced gplv3-only code into BusyBox, which 
conflicts with the license on the Linux kernel, including code like ifenslave.c 
which came from the kernel's Documentation directory.

There's a reason the Linux kernel uses the zlib deflate implementatin, which is 
bsd licensed.

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds


More information about the busybox mailing list