Skip to content

Commit 3815a24

Browse files
J. Bruce Fieldspcmoore
authored andcommitted
security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock
In the case when we're reusing a superblock, selinux_sb_clone_mnt_opts() fails to set set_kern_flags, with the result that nfs_clone_sb_security() incorrectly clears NFS_CAP_SECURITY_LABEL. The result is that if you mount the same NFS filesystem twice, NFS security labels are turned off, even if they would work fine if you mounted the filesystem only once. ("fixes" may be not exactly the right tag, it may be more like "fixed-other-cases-but-missed-this-one".) Cc: Scott Mayhew <smayhew@redhat.com> Cc: stable@vger.kernel.org Fixes: 0b4d345 "security/selinux: allow security_sb_clone_mnt_opts..." Signed-off-by: J. Bruce Fields <bfields@redhat.com> Acked-by: Stephen Smalley <sds@tycho.nsa.gov> Signed-off-by: Paul Moore <paul@paul-moore.com>
1 parent 292c997 commit 3815a24

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

security/selinux/hooks.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -981,8 +981,11 @@ static int selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
981981
BUG_ON(!(oldsbsec->flags & SE_SBINITIALIZED));
982982

983983
/* if fs is reusing a sb, make sure that the contexts match */
984-
if (newsbsec->flags & SE_SBINITIALIZED)
984+
if (newsbsec->flags & SE_SBINITIALIZED) {
985+
if ((kern_flags & SECURITY_LSM_NATIVE_LABELS) && !set_context)
986+
*set_kern_flags |= SECURITY_LSM_NATIVE_LABELS;
985987
return selinux_cmp_sb_context(oldsb, newsb);
988+
}
986989

987990
mutex_lock(&newsbsec->lock);
988991

0 commit comments

Comments
 (0)