mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
selinux: clean up selinuxfs resources on init failure
init_sel_fs() creates the selinuxfs mount point and registers the filesystem before mounting selinuxfs internally. If kern_mount() or the subsequent lookup of the null file fails, the function returns without undoing the resources that were already registered. Add the missing error unwinding so the internal mount, filesystem registration, and sysfs mount point are released as appropriate. Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com> Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
parent
5adb9195e0
commit
dc67c654bc
|
|
@ -1984,17 +1984,15 @@ int __init init_sel_fs(void)
|
|||
return err;
|
||||
|
||||
err = register_filesystem(&sel_fs_type);
|
||||
if (err) {
|
||||
sysfs_remove_mount_point(fs_kobj, "selinux");
|
||||
return err;
|
||||
}
|
||||
if (err)
|
||||
goto err_remove_mount_point;
|
||||
|
||||
selinux_null.mnt = kern_mount(&sel_fs_type);
|
||||
if (IS_ERR(selinux_null.mnt)) {
|
||||
pr_err("selinuxfs: could not mount!\n");
|
||||
err = PTR_ERR(selinux_null.mnt);
|
||||
selinux_null.mnt = NULL;
|
||||
return err;
|
||||
goto err_unregister_fs;
|
||||
}
|
||||
|
||||
selinux_null.dentry = try_lookup_noperm(&null_name,
|
||||
|
|
@ -2003,7 +2001,7 @@ int __init init_sel_fs(void)
|
|||
pr_err("selinuxfs: could not lookup null!\n");
|
||||
err = PTR_ERR(selinux_null.dentry);
|
||||
selinux_null.dentry = NULL;
|
||||
return err;
|
||||
goto err_unmount;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -2012,5 +2010,14 @@ int __init init_sel_fs(void)
|
|||
*/
|
||||
(void) selinux_kernel_status_page();
|
||||
|
||||
return 0;
|
||||
|
||||
err_unmount:
|
||||
kern_unmount(selinux_null.mnt);
|
||||
selinux_null.mnt = NULL;
|
||||
err_unregister_fs:
|
||||
unregister_filesystem(&sel_fs_type);
|
||||
err_remove_mount_point:
|
||||
sysfs_remove_mount_point(fs_kobj, "selinux");
|
||||
return err;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user