public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: haveblue@us.ibm.com, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, neilb@suse.de,
	akpm@linux-foundation.org, hch@infradead.org,
	linux-security-module@vger.kernel.org, jmorris@namei.org
Subject: Re: r-o bind in nfsd
Date: Fri, 21 Mar 2008 19:49:31 +0000	[thread overview]
Message-ID: <20080321194931.GX10722@ZenIV.linux.org.uk> (raw)
In-Reply-To: <E1JcmLz-0001n1-RC@pomaz-ex.szeredi.hu>

On Fri, Mar 21, 2008 at 07:52:35PM +0100, Miklos Szeredi wrote:
> > > > And having the vfsmount available within vfs_...() functions means,
> > > > that the mnt_want_write() check can be moved inside, which means that
> > > > callers get simpler and less likely to be buggy.  Those are all
> > > > advantages IMO, regardless of any security module issues.
> > > 
> > > Or we can introduce another set of exported functions (path_mkdir(),
> > > ...), and leave vfs_...() alone.  And then the only question is if
> > > LSM's can live with ordering change.
> > 
> > I really don't see the point of new helpers; especially since one doesn't
> > have to _have_ vfsmount to use the old ones and since we don't have a lot
> > of users of each of those to start with.
> 
> Traditionally we have syscalls, and nfsd.  Both of them want the
> security checks, and I think nfsd wants the read-only mount checking
> as well, but I'm not entirely sure.  Maybe we can handle that by just
> making nfsd acquire a write-ref on the mount and keep it while it's
> exported.
> 
> Then there's ecryptfs and unionfs, which probably need neither, but it
> wouldn't hurt to do them anyway.
> 
> Still, even if there are only two callers, then moving stuff to up
> doesn't make any sense.  Passing down a struct path is free for the
> syscall case, it doesn't consume any stack space or extra CPU.  Do
> please tell, why would that be such a bad thing?

Because we'd been that way before; see the shitpiles around ->lookup()
getting nameidata, etc.  You'll end up with some callers passing NULL
as ->mnt since they don't have anything better to pass, some stuff
called *from* the damn thing caring to check for ->mnt being NULL,
some stuff not caring about what ->mnt is at all and some assuming
that it's not NULL.  Which will lead to exploding combinations that
won't be noticed until somebody steps into such config.

As for the vfsmount-dependent checks (and any kind of MAC, while we are
at it)...  They belong to callers, exactly because different callers may
want different (amount of) checks.

  reply	other threads:[~2008-03-21 19:49 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-21 14:59 r-o bind in nfsd Miklos Szeredi
2008-03-21 15:54 ` Al Viro
2008-03-21 16:24   ` Miklos Szeredi
2008-03-21 16:35     ` Al Viro
2008-03-21 16:54       ` Miklos Szeredi
2008-03-21 17:08         ` Miklos Szeredi
2008-03-21 18:11           ` Al Viro
2008-03-21 18:52             ` Miklos Szeredi
2008-03-21 19:49               ` Al Viro [this message]
2008-03-21 20:23                 ` Miklos Szeredi
2008-03-22  2:20                   ` Tetsuo Handa
2008-03-21 21:08               ` Dave Hansen
2008-03-21 21:17                 ` Miklos Szeredi
2008-03-25  2:52         ` Neil Brown
2008-03-25 11:45           ` Tetsuo Handa
2008-03-25 22:32             ` NeilBrown
     [not found]               ` <20080325224919.GM10722@ZenIV.linux.org.uk>
2008-03-25 23:29                 ` NeilBrown
2008-03-26 12:04               ` Stephen Smalley
2008-03-26 16:47                 ` Serge E. Hallyn
2008-03-26 21:35                   ` James Morris
2008-03-27  0:29                     ` Serge E. Hallyn

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=20080321194931.GX10722@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=haveblue@us.ibm.com \
    --cc=hch@infradead.org \
    --cc=jmorris@namei.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=neilb@suse.de \
    /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