Smack: fix the subject/object order in smack_ptrace_traceme() 90/31090/1
authorLukasz Pawelczyk <l.pawelczyk@partner.samsung.com>
Tue, 11 Mar 2014 16:07:04 +0000 (17:07 +0100)
committerZbigniew Jasinski <z.jasinski@samsung.com>
Fri, 28 Nov 2014 09:35:29 +0000 (10:35 +0100)
The order of subject/object is currently reversed in
smack_ptrace_traceme(). It is currently checked if the tracee has a
capability to trace tracer and according to this rule a decision is made
whether the tracer will be allowed to trace tracee.

Change-Id: I8ed75ceabe822c70cf9bdccda004139c4c817248
Signed-off-by: Lukasz Pawelczyk <l.pawelczyk@partner.samsung.com>
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
security/smack/smack.h
security/smack/smack_lsm.c

index d072fd3..b9dfc4e 100644 (file)
@@ -225,6 +225,7 @@ struct inode_smack *new_inode_smack(char *);
  */
 int smk_access_entry(char *, char *, struct list_head *);
 int smk_access(struct smack_known *, char *, int, struct smk_audit_info *);
+int smk_tskacc(struct task_smack *, char *, u32, struct smk_audit_info *);
 int smk_curacc(char *, u32, struct smk_audit_info *);
 struct smack_known *smack_from_secid(const u32);
 char *smk_parse_smack(const char *string, int len);
index 0589dee..de2bd4f 100644 (file)
@@ -207,11 +207,11 @@ static int smack_ptrace_traceme(struct task_struct *ptp)
        if (rc != 0)
                return rc;
 
-       skp = smk_of_task(task_security(ptp));
+       skp = smk_of_task(current_security());
        smk_ad_init(&ad, __func__, LSM_AUDIT_DATA_TASK);
        smk_ad_setfield_u_tsk(&ad, ptp);
 
-       rc = smk_curacc(skp->smk_known, MAY_READWRITE, &ad);
+       rc = smk_tskacc(ptp, skp->smk_known, MAY_READWRITE, &ad);
        return rc;
 }