diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2018-12-05 11:58:35 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2018-12-21 11:46:42 -0500 |
commit | a10d7c22b34bcf744679019269bfb33ebf0b75ee (patch) | |
tree | d8061eb8e92296f6a55d683112c8f8a172f33e83 /security | |
parent | f5c0c26d9008b355babb6d16f3d7c4de3bada0e7 (diff) |
LSM: split ->sb_set_mnt_opts() out of ->sb_kern_mount()
... leaving the "is it kernel-internal" logics in the caller.
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'security')
-rw-r--r-- | security/security.c | 5 | ||||
-rw-r--r-- | security/selinux/hooks.c | 10 | ||||
-rw-r--r-- | security/smack/smack_lsm.c | 15 |
3 files changed, 3 insertions, 27 deletions
diff --git a/security/security.c b/security/security.c index 02c656dd5c0c..afb05646d41b 100644 --- a/security/security.c +++ b/security/security.c | |||
@@ -405,10 +405,9 @@ int security_sb_remount(struct super_block *sb, | |||
405 | return call_int_hook(sb_remount, 0, sb, opts); | 405 | return call_int_hook(sb_remount, 0, sb, opts); |
406 | } | 406 | } |
407 | 407 | ||
408 | int security_sb_kern_mount(struct super_block *sb, int flags, | 408 | int security_sb_kern_mount(struct super_block *sb) |
409 | struct security_mnt_opts *opts) | ||
410 | { | 409 | { |
411 | return call_int_hook(sb_kern_mount, 0, sb, flags, opts); | 410 | return call_int_hook(sb_kern_mount, 0, sb); |
412 | } | 411 | } |
413 | 412 | ||
414 | int security_sb_show_options(struct seq_file *m, struct super_block *sb) | 413 | int security_sb_show_options(struct seq_file *m, struct super_block *sb) |
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index ba3e2917bd24..59b164d7134d 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -2874,18 +2874,10 @@ out_bad_option: | |||
2874 | return -EINVAL; | 2874 | return -EINVAL; |
2875 | } | 2875 | } |
2876 | 2876 | ||
2877 | static int selinux_sb_kern_mount(struct super_block *sb, int flags, | 2877 | static int selinux_sb_kern_mount(struct super_block *sb) |
2878 | struct security_mnt_opts *opts) | ||
2879 | { | 2878 | { |
2880 | const struct cred *cred = current_cred(); | 2879 | const struct cred *cred = current_cred(); |
2881 | struct common_audit_data ad; | 2880 | struct common_audit_data ad; |
2882 | int rc = selinux_set_mnt_opts(sb, opts, 0, NULL); | ||
2883 | if (rc) | ||
2884 | return rc; | ||
2885 | |||
2886 | /* Allow all mounts performed by the kernel */ | ||
2887 | if (flags & MS_KERNMOUNT) | ||
2888 | return 0; | ||
2889 | 2881 | ||
2890 | ad.type = LSM_AUDIT_DATA_DENTRY; | 2882 | ad.type = LSM_AUDIT_DATA_DENTRY; |
2891 | ad.u.dentry = sb->s_root; | 2883 | ad.u.dentry = sb->s_root; |
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 1d465ae3d11c..50e6e88bfe70 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c | |||
@@ -852,20 +852,6 @@ static int smack_set_mnt_opts(struct super_block *sb, | |||
852 | } | 852 | } |
853 | 853 | ||
854 | /** | 854 | /** |
855 | * smack_sb_kern_mount - Smack specific mount processing | ||
856 | * @sb: the file system superblock | ||
857 | * @flags: the mount flags | ||
858 | * @data: the smack mount options | ||
859 | * | ||
860 | * Returns 0 on success, an error code on failure | ||
861 | */ | ||
862 | static int smack_sb_kern_mount(struct super_block *sb, int flags, | ||
863 | struct security_mnt_opts *opts) | ||
864 | { | ||
865 | return smack_set_mnt_opts(sb, opts, 0, NULL); | ||
866 | } | ||
867 | |||
868 | /** | ||
869 | * smack_sb_statfs - Smack check on statfs | 855 | * smack_sb_statfs - Smack check on statfs |
870 | * @dentry: identifies the file system in question | 856 | * @dentry: identifies the file system in question |
871 | * | 857 | * |
@@ -4652,7 +4638,6 @@ static struct security_hook_list smack_hooks[] __lsm_ro_after_init = { | |||
4652 | LSM_HOOK_INIT(sb_alloc_security, smack_sb_alloc_security), | 4638 | LSM_HOOK_INIT(sb_alloc_security, smack_sb_alloc_security), |
4653 | LSM_HOOK_INIT(sb_free_security, smack_sb_free_security), | 4639 | LSM_HOOK_INIT(sb_free_security, smack_sb_free_security), |
4654 | LSM_HOOK_INIT(sb_copy_data, smack_sb_copy_data), | 4640 | LSM_HOOK_INIT(sb_copy_data, smack_sb_copy_data), |
4655 | LSM_HOOK_INIT(sb_kern_mount, smack_sb_kern_mount), | ||
4656 | LSM_HOOK_INIT(sb_statfs, smack_sb_statfs), | 4641 | LSM_HOOK_INIT(sb_statfs, smack_sb_statfs), |
4657 | LSM_HOOK_INIT(sb_set_mnt_opts, smack_set_mnt_opts), | 4642 | LSM_HOOK_INIT(sb_set_mnt_opts, smack_set_mnt_opts), |
4658 | LSM_HOOK_INIT(sb_parse_opts_str, smack_parse_opts_str), | 4643 | LSM_HOOK_INIT(sb_parse_opts_str, smack_parse_opts_str), |