From: Eric Sesterhenn <snakebyte@gmx.de>
To: Phillip Lougher <phil.lougher@gmail.com>
Cc: "Tom Rini" <trini@kernel.crashing.org>,
chris@zankel.net, "Jörn Engel" <joern@logfs.org>,
linuxppc-dev@ozlabs.org, rpurdie@rpsys.net,
linux-fsdevel@vger.kernel.org
Subject: Re: Warning and BUG with btrfs and corrupted image
Date: Fri, 23 Jan 2009 09:56:21 +0100 [thread overview]
Message-ID: <20090123085620.GA12650@alice> (raw)
In-Reply-To: <cce9e37e0901211815l2195858cob6e68ac8ad93e679@mail.gmail.com>
* Phillip Lougher (phil.lougher@gmail.com) wrote:
> On Tue, Jan 20, 2009 at 4:51 PM, Eric Sesterhenn <snakebyte@gmx.de> wrote:
>
> > I already tested squashfs. One issue is basically a problem with
> > the zlib-api for which i just posted a patch here
> > http://marc.info/?t=123212807300003&r=1&w=2
> >
>
> Thanks for testing Squashfs. I've not ignored your emails, but I've
> been busy job hunting, and so have not had time to look into this
> until now.
no problem, made me take a closer look at the issue :-) Hope you were
successfull
> I hardened Squashfs against fsfuzzer back in November 2006 (remember
> the month of kernel bugs, or MOKB, which highlighted a number of
> issues with Squashfs). Your testing has thrown up a regression that I
> inadvertently put in last month!
Thats why I do the fsfuzzer tests for every kernel i test :-)
will you do the "wheter" -> "whether" change for the other patch locally
and push it or do you want me to send a changed version?
> > The other is an overwritten redzone (also reported in this thread
> > http://marc.info/?l=linux-fsdevel&m=123212794425497&w=2)
> > Looks like a length parameter is passed to squashfs_read_data
> > which is bigger than ((msblk->block_size >> msblk->devblksize_log2) +
> > 1), so the kcalloced buffer gets overwritten later.
>
> As part of the mainlining effort I changed Squashfs to allocate
> buffers in 4K page sizes rather than use vmalloced large buffers. As
> far as zlib goes, it means zlib_inflate now decompresses into a
> sequence of 4K buffers rather than one large buffer. What this means
> is zlib_inflate is called repeatedly moving to the next 4K page
> whenever zlib_inflate asks for another buffer (stream.avail_out == 0).
>
> Your testing have thrown up the case where zlib_inflate is asking for
> too many output buffers, i.e. it has returned with Z_OK,
> stream.avail_in !=0 (more input data to be processed), and
> stream.avail_out == 0 (I'd like another output buffer). but it has
> consumed all the output buffers. This isn't checked (the code assumes
> zlib will do the right thing on corrupt data and bomb out). My guess
> is either zlib_inflate is getting confused with corrupt data, or
> fsfuzzer gets lucky sometimes and corrupts the filesystem to point to
> another valid but larger compressed block (i.e. in your test
> filesystems the 4K datablock is being corrupted to point to an 8K
> metadata block).
>
> This ultimately leads to an oops in zlib_inflate where it has been
> passed a bogus or NULL steam.next_out pointer.
>
> I'll create a patch and send it to you if you're happy to test it.
Sure, just throw it in my direction.
Greetings, Eric
parent reply other threads:[~2009-01-23 8:56 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <cce9e37e0901211815l2195858cob6e68ac8ad93e679@mail.gmail.com>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090123085620.GA12650@alice \
--to=snakebyte@gmx.de \
--cc=chris@zankel.net \
--cc=joern@logfs.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=phil.lougher@gmail.com \
--cc=rpurdie@rpsys.net \
--cc=trini@kernel.crashing.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).