Yama: Initialize as ordered LSM

This converts Yama from being a direct "minor" LSM into an ordered LSM.

Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Casey Schaufler <casey@schaufler-ca.com>
This commit is contained in:
Kees Cook 2018-09-14 15:37:20 -07:00
parent 70b62c2566
commit d6aed64b74
4 changed files with 8 additions and 8 deletions

View File

@ -2090,10 +2090,5 @@ static inline void security_delete_hooks(struct security_hook_list *hooks,
#endif /* CONFIG_SECURITY_WRITABLE_HOOKS */ #endif /* CONFIG_SECURITY_WRITABLE_HOOKS */
extern void __init capability_add_hooks(void); extern void __init capability_add_hooks(void);
#ifdef CONFIG_SECURITY_YAMA
extern void __init yama_add_hooks(void);
#else
static inline void __init yama_add_hooks(void) { }
#endif
#endif /* ! __LINUX_LSM_HOOKS_H */ #endif /* ! __LINUX_LSM_HOOKS_H */

View File

@ -241,7 +241,7 @@ source "security/integrity/Kconfig"
config LSM config LSM
string "Ordered list of enabled LSMs" string "Ordered list of enabled LSMs"
default "loadpin,integrity,selinux,smack,tomoyo,apparmor" default "yama,loadpin,integrity,selinux,smack,tomoyo,apparmor"
help help
A comma-separated list of LSMs, in initialization order. A comma-separated list of LSMs, in initialization order.
Any LSMs left off this list will be ignored. This can be Any LSMs left off this list will be ignored. This can be

View File

@ -274,7 +274,6 @@ int __init security_init(void)
* Load minor LSMs, with the capability module always first. * Load minor LSMs, with the capability module always first.
*/ */
capability_add_hooks(); capability_add_hooks();
yama_add_hooks();
/* Load LSMs in specified order. */ /* Load LSMs in specified order. */
ordered_lsm_init(); ordered_lsm_init();

View File

@ -477,9 +477,15 @@ static void __init yama_init_sysctl(void)
static inline void yama_init_sysctl(void) { } static inline void yama_init_sysctl(void) { }
#endif /* CONFIG_SYSCTL */ #endif /* CONFIG_SYSCTL */
void __init yama_add_hooks(void) static int __init yama_init(void)
{ {
pr_info("Yama: becoming mindful.\n"); pr_info("Yama: becoming mindful.\n");
security_add_hooks(yama_hooks, ARRAY_SIZE(yama_hooks), "yama"); security_add_hooks(yama_hooks, ARRAY_SIZE(yama_hooks), "yama");
yama_init_sysctl(); yama_init_sysctl();
return 0;
} }
DEFINE_LSM(yama) = {
.name = "yama",
.init = yama_init,
};