diff options
Diffstat (limited to 'security/tomoyo/tomoyo.c')
| -rw-r--r-- | security/tomoyo/tomoyo.c | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c index 35a13e7915e..9548a0984cc 100644 --- a/security/tomoyo/tomoyo.c +++ b/security/tomoyo/tomoyo.c @@ -14,6 +14,12 @@  #include "tomoyo.h"  #include "realpath.h" +static int tomoyo_cred_alloc_blank(struct cred *new, gfp_t gfp) +{ +	new->security = NULL; +	return 0; +} +  static int tomoyo_cred_prepare(struct cred *new, const struct cred *old,  			       gfp_t gfp)  { @@ -25,6 +31,15 @@ static int tomoyo_cred_prepare(struct cred *new, const struct cred *old,  	return 0;  } +static void tomoyo_cred_transfer(struct cred *new, const struct cred *old) +{ +	/* +	 * Since "struct tomoyo_domain_info *" is a sharable pointer, +	 * we don't need to duplicate. +	 */ +	new->security = old->security; +} +  static int tomoyo_bprm_set_creds(struct linux_binprm *bprm)  {  	int rc; @@ -262,7 +277,9 @@ static int tomoyo_dentry_open(struct file *f, const struct cred *cred)   */  static struct security_operations tomoyo_security_ops = {  	.name                = "tomoyo", +	.cred_alloc_blank    = tomoyo_cred_alloc_blank,  	.cred_prepare        = tomoyo_cred_prepare, +	.cred_transfer	     = tomoyo_cred_transfer,  	.bprm_set_creds      = tomoyo_bprm_set_creds,  	.bprm_check_security = tomoyo_bprm_check_security,  #ifdef CONFIG_SYSCTL  |