diff options
author | David Woodhouse <dwmw2@shinybook.infradead.org> | 2005-08-17 09:45:55 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@shinybook.infradead.org> | 2005-08-17 09:45:55 -0400 |
commit | 413a1c7520ad6207c9122a749983c500f29e3e32 (patch) | |
tree | 81155d0224d35cace00c1fe50a146e30a58e68d4 /kernel/auditsc.c | |
parent | 327b6b08d6ab3bf5488120ba02ed2fe06b09efe6 (diff) |
AUDIT: Fix task refcount leak in audit_filter_syscall()
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'kernel/auditsc.c')
-rw-r--r-- | kernel/auditsc.c | 3 |
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 | ||