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 | |
| parent | 327b6b08d6ab3bf5488120ba02ed2fe06b09efe6 (diff) | |
AUDIT: Fix task refcount leak in audit_filter_syscall()
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| -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 | ||
