public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Lachlan McIlroy <lachlan@sgi.com>
To: Lachlan McIlroy <lachlan@sgi.com>, xfs-dev <xfs-dev@sgi.com>,
	xfs-oss <xfs@oss.sgi.com>
Subject: Re: [PATCH] Fix use-after-free with log and quotas
Date: Mon, 15 Sep 2008 12:40:04 +1000	[thread overview]
Message-ID: <48CDCB04.1040402@sgi.com> (raw)
In-Reply-To: <20080913040219.GA5811@disturbed>

Dave Chinner wrote:
> On Fri, Sep 12, 2008 at 06:41:07PM +1000, Lachlan McIlroy wrote:
>> Destroying the quota stuff on unmount can access the log - ie XFS_QM_DONE()
>> ends up in xfs_dqunlock() which calls xfs_trans_unlocked_item() and then
>> xfs_log_move_tail().  By this time the log has already been destroyed.
>> Just move the cleanup of the quota code earlier in xfs_unmountfs() before
>> the call to xfs_log_unmount().  Moving XFS_QM_DONE() up near
>> XFS_QM_DQPURGEALL() seems like a good spot.
> 
> FWIW, has this been actually seen in the real world?
Yes.  And easy to reproduce too.

> 
> xfs_trans_unlocked_item() only does stuff if the log item is in the
> AIL. If we've already destroyed the log, then we should have already
> torn down the AIL and there should be no log items in the system
> that are in the AIL....
That should be the case but clearly not happening.  Pete is investigating
an issue right now where a dquot is not getting removed from the AIL when
it should.  Until we've got to the bottom of that problem I'd prefer to at
least avoid this use after free issue.

  reply	other threads:[~2008-09-15  2:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-12  8:41 [PATCH] Fix use-after-free with log and quotas Lachlan McIlroy
2008-09-12  8:43 ` Christoph Hellwig
2008-09-13  4:02 ` Dave Chinner
2008-09-15  2:40   ` Lachlan McIlroy [this message]
2008-09-16  4:08     ` Dave Chinner
2008-09-16  6:36       ` Lachlan McIlroy

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=48CDCB04.1040402@sgi.com \
    --to=lachlan@sgi.com \
    --cc=xfs-dev@sgi.com \
    --cc=xfs@oss.sgi.com \
    /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