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] [day] [month] [year] [list]
Message-Id: <1249318687.29890.28.camel@tucsk>
Date:	Mon, 03 Aug 2009 18:58:07 +0200
From:	Miklos Szeredi <mszeredi@...e.cz>
To:	Amerigo Wang <amwang@...hat.com>
Cc:	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org, heiko.carstens@...ibm.com,
	linux-fsdevel@...r.kernel.org, viro@...iv.linux.org.uk
Subject: Re: [Patch] pipe: use file_update_time() when hold i_mutex

On Wed, 2009-07-22 at 17:21 +0800, Amerigo Wang wrote:
> Miklos Szeredi wrote:
> > On Tue, 2009-07-21 at 18:07 +0800, Amerigo Wang wrote:
> >   
> >> Andrew Morton wrote:
> >>     
> >>> On Mon, 6 Jul 2009 01:35:30 -0400
> >>> Amerigo Wang <amwang@...hat.com> wrote:
> >>>
> >>>   
> >>>       
> >>>> file_update_time() should be called with i_mutex held,
> >>>> move it before mutex_unlock().
> >>>>
> >>>>     
> >>>>         
> >>> Why do you believe that file_update_time() needs i_mutex?
> >>>   
> >>>       
> >> file_update_time() modifies inode, no? :)
> >>     
> >
> > So does touch_atime(), yet neither needs i_mutex.
> >   
> Yes?
> 
> Then how the inode is protected when file_update_time() modifies
> it?

Protected against what?

For example the inode isn't protected against concurrent access by
stat(2), since that doesn't take i_mutex.

And indeed it looks like there are races there, since set/get operations
are not atomic on the timestamp, so stat could return a garbled value if
it races with file_update_time() or touch_atime().

Possibly worth fixing, but I'm not sure how to do that without affecting
the scalability of stat and friends and without adding too much
complexity.

Thanks,
Miklos

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ