]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selinux: fix sel_kill_sb()
authorStephen Smalley <stephen.smalley.work@gmail.com>
Wed, 29 Apr 2026 18:15:31 +0000 (14:15 -0400)
committerPaul Moore <paul@paul-moore.com>
Wed, 29 Apr 2026 19:11:36 +0000 (15:11 -0400)
Fix the order in sel_kill_sb() to match other pseudo filesystems.
This does not currently matter for selinuxfs per se but could
in the future, e.g. with SELinux namespaces and multiple selinuxfs
instances.

Signed-off-by: Stephen Smalley <stephen.smalley.work@gmail.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/selinuxfs.c

index 8c107af5140e535d70c5dde99be60b8779462330..c4a68d623d40810592c61a2224448b5dbb9744f9 100644 (file)
@@ -95,9 +95,8 @@ static int selinux_fs_info_create(struct super_block *sb)
        return 0;
 }
 
-static void selinux_fs_info_free(struct super_block *sb)
+static void selinux_fs_info_free(struct selinux_fs_info *fsi)
 {
-       struct selinux_fs_info *fsi = sb->s_fs_info;
        unsigned int i;
 
        if (fsi) {
@@ -106,8 +105,7 @@ static void selinux_fs_info_free(struct super_block *sb)
                kfree(fsi->bool_pending_names);
                kfree(fsi->bool_pending_values);
        }
-       kfree(sb->s_fs_info);
-       sb->s_fs_info = NULL;
+       kfree(fsi);
 }
 
 #define SEL_INITCON_INO_OFFSET         0x01000000
@@ -2093,8 +2091,10 @@ static int sel_init_fs_context(struct fs_context *fc)
 
 static void sel_kill_sb(struct super_block *sb)
 {
-       selinux_fs_info_free(sb);
+       struct selinux_fs_info *fsi = sb->s_fs_info;
+
        kill_anon_super(sb);
+       selinux_fs_info_free(fsi);
 }
 
 static struct file_system_type sel_fs_type = {