apparmor: add the ability to get a task's secid
authorJohn Johansen <john.johansen@canonical.com>
Mon, 11 Sep 2017 18:29:53 +0000 (11:29 -0700)
committerJohn Johansen <john.johansen@canonical.com>
Wed, 2 May 2018 07:49:11 +0000 (00:49 -0700)
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/lsm.c

index 91284b5..7866161 100644 (file)
@@ -711,6 +711,13 @@ static void apparmor_bprm_committed_creds(struct linux_binprm *bprm)
        return;
 }
 
+static void apparmor_task_getsecid(struct task_struct *p, u32 *secid)
+{
+       struct aa_label *label = aa_get_task_label(p);
+       *secid = label->secid;
+       aa_put_label(label);
+}
+
 static int apparmor_task_setrlimit(struct task_struct *task,
                unsigned int resource, struct rlimit *new_rlim)
 {
@@ -1187,6 +1194,7 @@ 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, apparmor_task_getsecid),
        LSM_HOOK_INIT(task_setrlimit, apparmor_task_setrlimit),
        LSM_HOOK_INIT(task_kill, apparmor_task_kill),