linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miklos Szeredi <miklos@szeredi.hu>
To: Christian Brauner <brauner@kernel.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>,
	Miklos Szeredi <mszeredi@redhat.com>,
	linux-fsdevel@vger.kernel.org,
	Amir Goldstein <amir73il@gmail.com>,
	David Howells <dhowells@redhat.com>,
	Yu-li Lin <yulilin@google.com>,
	Chirantan Ekbote <chirantan@chromium.org>
Subject: Re: [PATCH v3 7/9] vfs: move open right after ->tmpfile()
Date: Wed, 21 Sep 2022 16:53:25 +0200	[thread overview]
Message-ID: <CAJfpegsrc5u+0ea4hE-tFGX5qXT6_dJbjwnkAr8zSeszvRpXOA@mail.gmail.com> (raw)
In-Reply-To: <20220921085434.g3ak6lwqvpe67ksn@wittgenstein>

On Wed, 21 Sept 2022 at 10:54, Christian Brauner <brauner@kernel.org> wrote:
>
> On Wed, Sep 21, 2022 at 05:06:57AM +0200, Miklos Szeredi wrote:
> > On Tue, 20 Sept 2022 at 22:57, Al Viro <viro@zeniv.linux.org.uk> wrote:
> > >
> > > On Tue, Sep 20, 2022 at 09:36:30PM +0200, Miklos Szeredi wrote:
> > >
> > > >       inode = child->d_inode;
> > >
> > > Better
> > >         inode = file_inode(file);
> > >
> > > so that child would be completely ignored after dput().
> > >
> > > > +     error = vfs_tmpfile(mnt_userns, &path, file, op->mode);
> > > > +     if (error)
> > > >               goto out2;
> > > > -     dput(path.dentry);
> > > > -     path.dentry = child;
> > > > -     audit_inode(nd->name, child, 0);
> > > > +     audit_inode(nd->name, file->f_path.dentry, 0);
> > > >       /* Don't check for other permissions, the inode was just created */
> > > > -     error = may_open(mnt_userns, &path, 0, op->open_flag);
> > >
> > > Umm...  I'm not sure that losing it is the right thing - it might
> > > be argued that ->permission(..., MAY_OPEN) is to be ignored for
> > > tmpfile (and the only thing checking for MAY_OPEN is nfs, which is
> > > *not* going to grow tmpfile any time soon - certainly not with these
> > > calling conventions), but you are also dropping the call of
> > > security_inode_permission(inode, MAY_OPEN) and that's a change
> > > compared to what LSM crowd used to get...
> >
> > Not losing it, just moving it into vfs_tmpfile().
>
> Afaict, we haven't called may_open() for tmpfile creation in either
> cachefiles or overlayfs before. So from that perspective I wonder if
> there's a good reason for us to do it now.

For overlayfs we did check MAY_WRITE | MAY_OPEN through
ovl_path_open().  Just checking MAY_OPEN relaxes this, but it's in
line with the overlay model of checking the same permissions as if the
operation was invoked directly.

For cachefiles no permission was checked before this patch, so in
theory it could change behavior.  Moving the permission check back out
to callers would fix this, but I'm not entirely sure that that is the
best way forward.

David, what is the model for cachefiles?  Is this okay to check for
permissions on underlying ops, or that must be avoided?

Thanks,
Miklos

  reply	other threads:[~2022-09-21 14:53 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-20 19:36 [PATCH v3 0/9] fuse tmpfile Miklos Szeredi
2022-09-20 19:36 ` [PATCH v3 1/9] cachefiles: tmpfile error handling cleanup Miklos Szeredi
2022-09-20 19:36 ` [PATCH v3 2/9] hugetlbfs: cleanup mknod and tmpfile Miklos Szeredi
2022-09-21  7:59   ` Christian Brauner
2022-09-20 19:36 ` [PATCH v3 3/9] vfs: add tmpfile_open() helper Miklos Szeredi
2022-09-21  8:09   ` Christian Brauner
2022-09-21 14:33     ` Miklos Szeredi
2022-09-20 19:36 ` [PATCH v3 4/9] cachefiles: use " Miklos Szeredi
2022-09-21  8:26   ` Christian Brauner
2022-09-21 14:44     ` Miklos Szeredi
2022-09-21 19:46     ` Al Viro
2022-09-22  8:04       ` Christian Brauner
2022-09-20 19:36 ` [PATCH v3 5/9] ovl: " Miklos Szeredi
2022-09-21  8:35   ` Christian Brauner
2022-09-20 19:36 ` [PATCH v3 6/9] vfs: make vfs_tmpfile() static Miklos Szeredi
2022-09-21  8:36   ` Christian Brauner
2022-09-20 19:36 ` [PATCH v3 7/9] vfs: move open right after ->tmpfile() Miklos Szeredi
2022-09-20 20:57   ` Al Viro
2022-09-21  3:06     ` Miklos Szeredi
2022-09-21  8:54       ` Christian Brauner
2022-09-21 14:53         ` Miklos Szeredi [this message]
2022-09-21 19:55       ` Al Viro
2022-09-21  9:03   ` Christian Brauner
2022-09-21 14:56     ` Miklos Szeredi
2022-09-21 15:09       ` Christian Brauner
2022-09-21 15:24         ` Miklos Szeredi
2022-09-20 19:36 ` [PATCH v3 8/9] vfs: open inside ->tmpfile() Miklos Szeredi
2022-09-21  9:08   ` Christian Brauner
2022-09-21 14:58     ` Miklos Szeredi
2022-09-21 15:07       ` Christian Brauner
2022-09-21 15:27         ` Miklos Szeredi
2022-09-21 15:36           ` Christian Brauner
2022-09-21 19:52         ` Al Viro
2022-09-20 19:36 ` [PATCH v3 9/9] fuse: implement ->tmpfile() Miklos Szeredi
2022-09-21  9:15   ` Christian Brauner
2022-09-21 15:00     ` Miklos Szeredi

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=CAJfpegsrc5u+0ea4hE-tFGX5qXT6_dJbjwnkAr8zSeszvRpXOA@mail.gmail.com \
    --to=miklos@szeredi.hu \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=chirantan@chromium.org \
    --cc=dhowells@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=mszeredi@redhat.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=yulilin@google.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;
as well as URLs for NNTP newsgroup(s).