From: Matthew Wilcox <matthew@wil.cx>
To: Pavel Machek <pavel@suse.cz>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
torvalds@linux-foundation.org,
Andrew Morton <akpm@linux-foundation.org>,
Andi Kleen <andi@firstfloor.org>,
Hisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
"Theodore Ts'o" <tytso@mit.edu>
Subject: Re: [RESEND] [PATCH] VFS: make file->f_pos access atomic on 32bit arch
Date: Thu, 9 Oct 2008 07:01:32 -0600 [thread overview]
Message-ID: <20081009130131.GV25780@parisc-linux.org> (raw)
In-Reply-To: <20081009122319.GC1623@ucw.cz>
On Thu, Oct 09, 2008 at 02:23:19PM +0200, Pavel Machek wrote:
> On Tue 2008-10-07 20:52:09, Matthew Wilcox wrote:
> > And it's worth saying that letter-of-the-standard arguments aren't
> > necessarily enough. Linux does not honour the POSIX guarantee that
> > writes are atomic (if they cross page boundaries, it's not certain).
> > This seems like even more of a corner case to me.
>
> We have append-only files, and normal users should not be able to work
> around that restriction.
Is it possible to work around this restriction by exploiting this?
IS_APPEND() forces the user to have O_APPEND in their flags.
O_APPEND is only checked in generic_write_checks() where it sets '*pos'
to i_size.
For the majority of filesystems, generic_write_checks() is called from
__generic_file_aio_write_nolock. __generic_file_aio_write_nolock is
only called from generic_file_aio_write_nolock (which passes the address
of a kiocb->ki_pos) and generic_file_aio_write (same).
The filesystems that call generic_write_checks() directly are:
XFS (xfs_write): Passes the address of a local variable
OCFS2 (ocfs2_file_aio_write): Passes the address of a ki_pos
CIFS (cifs_user_write): Not sure.
NFS (nfs_file_direct_write): "Note that O_APPEND is not supported".
NTFS (ntfs_file_aio_write_nolock): Address of a local variable
FUSE (fuse_file_aio_write): Address of a local variable
FUSE (fuse_direct_write): Not sure.
So the only two that might be affected are CIFS and FUSE (O_DIRECT?!) as
far as I can tell. I'm having a hard time believing this is a security
problem.
--
Matthew Wilcox Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
next prev parent reply other threads:[~2008-10-09 13:01 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-07 5:07 [RESEND] [PATCH] VFS: make file->f_pos access atomic on 32bit arch Hisashi Hifumi
2008-10-07 6:43 ` Andi Kleen
2008-10-07 10:11 ` Hisashi Hifumi
2008-10-07 10:29 ` Andi Kleen
2008-10-07 16:27 ` Nick Piggin
2008-10-07 17:50 ` Andrew Morton
2008-10-07 18:59 ` Peter Zijlstra
2008-10-08 2:35 ` Nick Piggin
2008-10-08 2:52 ` Matthew Wilcox
2008-10-09 12:23 ` Pavel Machek
2008-10-09 12:49 ` Valdis.Kletnieks
2008-10-09 13:01 ` Matthew Wilcox [this message]
2008-10-09 13:38 ` Miklos Szeredi
2008-10-09 14:58 ` Linus Torvalds
2008-10-09 17:29 ` Jeremy Fitzhardinge
2008-10-08 4:48 ` Hisashi Hifumi
2008-10-08 5:10 ` Nick Piggin
2008-10-08 5:16 ` Matthew Wilcox
2008-10-08 6:28 ` Andrew Morton
2008-10-08 6:51 ` Peter Zijlstra
2008-10-08 8:32 ` Eric Dumazet
2008-10-08 8:32 ` Eric Dumazet
2008-10-08 8:48 ` Nick Piggin
2008-10-08 9:17 ` Peter Zijlstra
2008-10-09 21:51 ` dcg
2008-10-10 2:25 ` Nick Piggin
2008-10-10 2:25 ` Nick Piggin
2008-10-09 12:16 ` Pavel Machek
2008-10-08 0:40 ` Nick Piggin
2008-10-07 18:00 ` Matthew Wilcox
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=20081009130131.GV25780@parisc-linux.org \
--to=matthew@wil.cx \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=hifumi.hisashi@oss.ntt.co.jp \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=pavel@suse.cz \
--cc=torvalds@linux-foundation.org \
--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.