aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@shinybook.infradead.org>2005-08-17 09:45:55 -0400
committerDavid Woodhouse <dwmw2@shinybook.infradead.org>2005-08-17 09:45:55 -0400
commit413a1c7520ad6207c9122a749983c500f29e3e32 (patch)
tree81155d0224d35cace00c1fe50a146e30a58e68d4
parent327b6b08d6ab3bf5488120ba02ed2fe06b09efe6 (diff)
AUDIT: Fix task refcount leak in audit_filter_syscall()
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-rw-r--r--kernel/auditsc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index 46b45abceb9a..a73176eaa57d 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -1007,7 +1007,7 @@ void audit_syscall_exit(struct task_struct *tsk, int valid, long return_code)
1007 /* Not having a context here is ok, since the parent may have 1007 /* Not having a context here is ok, since the parent may have
1008 * called __put_task_struct. */ 1008 * called __put_task_struct. */
1009 if (likely(!context)) 1009 if (likely(!context))
1010 return; 1010 goto out;
1011 1011
1012 if (context->in_syscall && context->auditable) 1012 if (context->in_syscall && context->auditable)
1013 audit_log_exit(context, GFP_KERNEL); 1013 audit_log_exit(context, GFP_KERNEL);
@@ -1026,6 +1026,7 @@ void audit_syscall_exit(struct task_struct *tsk, int valid, long return_code)
1026 audit_zero_context(context, context->state); 1026 audit_zero_context(context, context->state);
1027 tsk->audit_context = context; 1027 tsk->audit_context = context;
1028 } 1028 }
1029 out:
1029 put_task_struct(tsk); 1030 put_task_struct(tsk);
1030} 1031}
1031 1032