All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Jones <davej@redhat.com>
To: sandeen@redhat.com, tytso@mit.edu,
	Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: Patch "ext4: fix memory leak in xattr" has been added to the 3.0-stable tree
Date: Tue, 15 Oct 2013 14:11:42 -0400	[thread overview]
Message-ID: <20131015181142.GA23581@redhat.com> (raw)
In-Reply-To: <13817826832984@kroah.com>

On Mon, Oct 14, 2013 at 01:31:23PM -0700, gregkh@linuxfoundation.org wrote:
 
 > If we take the 2nd retry path in ext4_expand_extra_isize_ea, we
 > potentionally return from the function without having freed these
 > allocations.  If we don't do the return, we over-write the previous
 > allocation pointers, so we leak either way.
 > 
 > Spotted with Coverity.
 > 
 > [ Fixed by tytso to set is and bs to NULL after freeing these
 >   pointers, in case in the retry loop we later end up triggering an
 >   error causing a jump to cleanup, at which point we could have a double
 >   free bug. -- Ted ]
 > 
 > ---
 >  fs/ext4/xattr.c |    2 ++
 >  1 file changed, 2 insertions(+)
 > 
 > --- a/fs/ext4/xattr.c
 > +++ b/fs/ext4/xattr.c
 > @@ -1271,6 +1271,8 @@ retry:
 >  				    s_min_extra_isize) {
 >  					tried_min_extra_isize++;
 >  					new_extra_isize = s_min_extra_isize;
 > +					kfree(is); is = NULL;
 > +					kfree(bs); bs = NULL;
 >  					goto retry;
 >  				}

Because this was different in my local tree I ended up looking it over again
when I rebased. Do we also need the patch below ?

	Dave

If we take the retry path here, we end up potentially overwriting bh, leaving
it with an elevated reference count.

Signed-off-by: Dave Jones <davej@fedoraproject.org>

diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index 03e9beb..1423c48 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1352,6 +1352,7 @@ retry:
 					new_extra_isize = s_min_extra_isize;
 					kfree(is); is = NULL;
 					kfree(bs); bs = NULL;
+					brelse(bh);
 					goto retry;
 				}
 				error = -1;

           reply	other threads:[~2013-10-15 18:11 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <13817826832984@kroah.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=20131015181142.GA23581@redhat.com \
    --to=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sandeen@redhat.com \
    --cc=tytso@mit.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.