audit: Fix wrong task in comparison of session ID
authorOndrej Mosnáček <omosnace@redhat.com>
Thu, 17 May 2018 15:31:14 +0000 (17:31 +0200)
committerPaul Moore <paul@paul-moore.com>
Mon, 21 May 2018 18:27:43 +0000 (14:27 -0400)
The audit_filter_rules() function in auditsc.c compared the session ID
with the credentials of the current task, while it should use the
credentials of the task given to audit_filter_rules() as a parameter
(tsk).

GitHub issue:
https://github.com/linux-audit/audit-kernel/issues/82

Fixes: 8fae47705685 ("audit: add support for session ID user filter")
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
Reviewed-by: Richard Guy Briggs <rgb@redhat.com>
[PM: not user visible, dropped stable]
Signed-off-by: Paul Moore <paul@paul-moore.com>
kernel/auditsc.c

index ef3e189..ceb1c45 100644 (file)
@@ -517,7 +517,7 @@ static int audit_filter_rules(struct task_struct *tsk,
                        result = audit_gid_comparator(cred->fsgid, f->op, f->gid);
                        break;
                case AUDIT_SESSIONID:
-                       sessionid = audit_get_sessionid(current);
+                       sessionid = audit_get_sessionid(tsk);
                        result = audit_comparator(sessionid, f->op, f->val);
                        break;
                case AUDIT_PERS: