Re: [PATCH] selinux: bpf: check SBLABEL_MNT before isec init
Carlos Llamas <[email protected]> Thu, 30 Jul 2026 22:07:10 +0000
| Newsgroups | org.kernel.vger.selinux,org.kernel.vger.bpf,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Jul 30, 2026 at 05:10:00PM -0400, Paul Moore wrote: > On Jul 30, 2026 Carlos Llamas <[email protected]> wrote: > > > > selinux_inode_init_security() marks the isec as initialized before > > checking if mount labeling is supported (SBLABEL_MNT). This was fine > > until commit 9722955b5430 ("bpf: Add simple xattr support to bpffs"), > > where genfscon bpffs mounts fail the SBLABEL_MNT check as expected (no > > xattrs) and yet leave the isec->initialized. This breaks subsequent > > calls to inode_doinit_with_dentry(). > > > > Do the SBLABEL_MNT check before the inode security is initialized. > > > > Cc: [email protected] > > Closes: https://lore.kernel.org/all/[email protected]/ > > Fixes: 9722955b5430 ("bpf: Add simple xattr support to bpffs") > > Signed-off-by: Carlos Llamas <[email protected]> > > Acked-by: Stephen Smalley <[email protected]> > > --- > > security/selinux/hooks.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c > > index 8d6945edae7a..09a12eb8652c 100644 > > --- a/security/selinux/hooks.c > > +++ b/security/selinux/hooks.c > > @@ -2980,6 +2980,10 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir, > > if (rc) > > return rc; > > > > + if (!selinux_initialized() || > > + !(sbsec->flags & SBLABEL_MNT)) > > + return -EOPNOTSUPP; > > If we're moving this check, we should probably just move it to right > after we assign 'sbsec' at the top of the function. The calls to > inode_mode_to_security() and selinux_determine_inode_label() aren't > doing anything useful in either the !selinux_initialized() or !SBLABEL_MNT > cases so let's avoid the unnecessary work. Ha! That is a really good point. Let me move the check further up then.