X-Git-Url: http://git.onelab.eu/?p=linux-2.6.git;a=blobdiff_plain;f=kernel%2Fauditsc.c;fp=kernel%2Fauditsc.c;h=8fab061dfc39a4f41c0825f52a73692b3c37629b;hp=c64da575a3cba2e7fd50f62d7a16bd6bcd02bfde;hb=7172c64a7cee4dfa95864f49c914f7ea8cf497c8;hpb=3967a72a825e44bff5d10f516e90b6f59f59e599 diff --git a/kernel/auditsc.c b/kernel/auditsc.c index c64da575a..8fab061df 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -817,10 +817,14 @@ static void audit_log_exit(struct audit_context *context, struct task_struct *ts audit_log_format(ab, " success=%s exit=%ld", (context->return_valid==AUDITSC_SUCCESS)?"yes":"no", context->return_code); + + mutex_lock(&tty_mutex); + read_lock(&tasklist_lock); if (tsk->signal && tsk->signal->tty && tsk->signal->tty->name) tty = tsk->signal->tty->name; else tty = "(none)"; + read_unlock(&tasklist_lock); audit_log_format(ab, " a0=%lx a1=%lx a2=%lx a3=%lx items=%d" " ppid=%d pid=%d auid=%u uid=%u gid=%u" @@ -838,6 +842,9 @@ static void audit_log_exit(struct audit_context *context, struct task_struct *ts context->gid, context->euid, context->suid, context->fsuid, context->egid, context->sgid, context->fsgid, tty); + + mutex_unlock(&tty_mutex); + audit_log_task_info(ab, tsk); if (context->filterkey) { audit_log_format(ab, " key=");