AUDIT: Really don't audit auditd.
authorDavid Woodhouse <dwmw2@shinybook.infradead.org>
Sat, 2 Jul 2005 13:10:46 +0000 (14:10 +0100)
committerDavid Woodhouse <dwmw2@shinybook.infradead.org>
Sat, 2 Jul 2005 13:10:46 +0000 (14:10 +0100)
The pid in the audit context isn't always set up. Use tsk->pid when
checking whether it's auditd in audit_filter_syscall(), instead of
ctx->pid. Remove a band-aid which did the same elsewhere.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
kernel/auditsc.c

index 34a990223c9e4e2d61ab870518cde04dc9767c63..0fdd90194ecc9f8fee4a12503438321a283a907b 100644 (file)
@@ -516,7 +516,7 @@ static enum audit_state audit_filter_syscall(struct task_struct *tsk,
        int                word = AUDIT_WORD(ctx->major);
        int                bit  = AUDIT_BIT(ctx->major);
 
-       if (audit_pid && ctx->pid == audit_pid)
+       if (audit_pid && tsk->pid == audit_pid)
                return AUDIT_DISABLED;
 
        rcu_read_lock();
@@ -601,7 +601,7 @@ static inline struct audit_context *audit_get_context(struct task_struct *tsk,
        context->return_valid = return_valid;
        context->return_code  = return_code;
 
-       if (context->in_syscall && !context->auditable && tsk->pid != audit_pid) {
+       if (context->in_syscall && !context->auditable) {
                enum audit_state state;
                state = audit_filter_syscall(tsk, context, &audit_filter_list[AUDIT_FILTER_EXIT]);
                if (state == AUDIT_RECORD_CONTEXT)