Re: [GIT PULL] security changes for v6.9-rc3

From: Paul Moore
Date: Tue Apr 02 2024 - 16:28:33 EST


On Tue, Apr 2, 2024 at 4:27 PM Paul Moore <paul@xxxxxxxxxxxxxx> wrote:
> On Tue, Apr 2, 2024 at 3:39 PM Linus Torvalds
> <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
>
> ...
>
> > But if we really want to do this ("if mknod creates a positive dentry,
> > I won't see it in lookup, so I want to appraise it now"), then we
> > should just deal with this in the generic layer with some hack like
> > this:
> >
> > --- a/security/security.c
> > +++ b/security/security.c
> > @@ -1801,7 +1801,8 @@ EXPORT_SYMBOL(security_path_mknod);
> > */
> > void security_path_post_mknod(struct mnt_idmap *idmap, struct dentry *dentry)
> > {
> > - if (unlikely(IS_PRIVATE(d_backing_inode(dentry))))
> > + struct inode *inode = d_backing_inode(dentry);
> > + if (unlikely(!inode || IS_PRIVATE(inode)))
> > return;
> > call_void_hook(path_post_mknod, idmap, dentry);
> > }
>
> Other than your snippet wrapping both the inode/NULL and
> inode/IS_PRIVATE checks with an unlikely(), that's what Roberto
> submitted (his patch only wrapped the inode/IS_PRIVATE with unlikely).

Nevermind, I missed the obvious OR / AND diff ... sorry for the noise.

--
paul-moore.com