lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 3 Apr 2013 13:58:18 -0400
From:	Theodore Ts'o <tytso@....edu>
To:	Lukáš Czerner <lczerner@...hat.com>
Cc:	linux-ext4@...r.kernel.org
Subject: Re: ext4 dev branch: mutex not locked in ext4_truncate()

On Wed, Apr 03, 2013 at 04:41:01PM +0200, Lukáš Czerner wrote:
> Hi Ted,
> 
> there is a problem with your patch:
> 
> 32d90a241a44d22ebc5289d2a2561691fc2d1351
> 
> because there is one more case where we might call ext4_truncate()
> without i_mutex locked - from ext4_symlink(). Because we might be
> calling __page_symlink() and it will call ext4_write_begin(). In
> possible error case (ENOSPC for example) we might want to truncate
> everything which might have been instantiated past i_size, however
> at that point we're not holding i_mutex because there is no point in
> doing so - the inode can not be possibly held by anyone else.
> 
> My proposal is to only check whether the mutex is locked if the
> inode is _not_ new or is _not_ being freed.
> 
> There is a quick&dirty patch and it seems to be working well so
> far. Let me know if you prefer standalone patch, or if you'll
> include it into your commit.

I really like your approach.  We've been trying a number of other
approaches, including

      http://patchwork.ozlabs.org/patch/232914/
and
      http://patchwork.ozlabs.org/patch/231679/

but I think your suggestion is the best.

Thanks!!

						- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ