Re: [RFC] LZO de/compression support - take 6

From: Daniel Hazelton
Date: Tue May 29 2007 - 16:33:56 EST


On Tuesday 29 May 2007 16:14:34 Daniel Hazelton wrote:
> On Tuesday 29 May 2007 01:58:43 Nitin Gupta wrote:
> > On 5/29/07, Bret Towe <magnade@xxxxxxxxx> wrote:
> > > tested this on ppc and its still good
> > >
> > > is there any reason to bother with a test on amd64?
> > > if there is I might be able to get to it tonight
> >
> > Yes, this test is desired on 'take 6'
> > (In future I will append version to patch bz2)
> >
> > Thanks,
> > Nitin
>
> I added a few functions to my test-bed to see how well the LZO code coped
> with random input data. I'll extend my error checking so that it dumps all
> local variables at the first error, but for the time being I'm staring at a
> problem with what appears to be a double-free (in addition to
> lzo1x_decompress(_safe) screaming about overruns when I pass it the buffer
> of compressed, totally random data).
>
> (I fill the buffer by doing a read from /dev/urandom, though I'll certainly
> change it to use random() if anyone thinks that'll make a difference)
>
> I'll post the version with the random-data tests when I get the double-free
> solved. (I've looked and don't see how its happening)
>
> DRH

After some additional debugging the problem appears to be that both
lzo1x_decompress_safe (from miniLZO) and lzo1x_decompress (from the 'Tiny'
version) both are somehow corrupting memory.

*** glibc detected *** ./tinytest: double free or corruption (out): 0x08070e60
***

The buffer at 0x08070e60 is the one I allocated specifically for the new
random data tests. It has the same location when it is allocated as it is
when free()'d, so the corruption has to be coming from somewhere. The problem
*might* be in my code - that is, I might have made a mistake in the read()
from /dev/urandom. I'm going to go test that now.

DRH
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/