diff options
Diffstat (limited to 'security/apparmor/lsm.c')
| -rw-r--r-- | security/apparmor/lsm.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c index 0d6585056f3d..4f0eecb67dde 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c @@ -728,7 +728,14 @@ static void apparmor_bprm_committed_creds(struct linux_binprm *bprm)  	return;  } -static void apparmor_task_getsecid(struct task_struct *p, u32 *secid) +static void apparmor_current_getsecid_subj(u32 *secid) +{ +	struct aa_label *label = aa_get_current_label(); +	*secid = label->secid; +	aa_put_label(label); +} + +static void apparmor_task_getsecid_obj(struct task_struct *p, u32 *secid)  {  	struct aa_label *label = aa_get_task_label(p);  	*secid = label->secid; @@ -1252,8 +1259,8 @@ static struct security_hook_list apparmor_hooks[] __lsm_ro_after_init = {  	LSM_HOOK_INIT(task_free, apparmor_task_free),  	LSM_HOOK_INIT(task_alloc, apparmor_task_alloc), -	LSM_HOOK_INIT(task_getsecid_subj, apparmor_task_getsecid), -	LSM_HOOK_INIT(task_getsecid_obj, apparmor_task_getsecid), +	LSM_HOOK_INIT(current_getsecid_subj, apparmor_current_getsecid_subj), +	LSM_HOOK_INIT(task_getsecid_obj, apparmor_task_getsecid_obj),  	LSM_HOOK_INIT(task_setrlimit, apparmor_task_setrlimit),  	LSM_HOOK_INIT(task_kill, apparmor_task_kill), |