[PATCH 79] ptrace_detach_task: don't use engine ptr before IS_ERR(engine)
Oleg Nesterov
oleg at redhat.com
Sat Oct 10 16:16:56 UTC 2009
"[PATCH 76] fold detach_signal() into ptrace_detach_task()" was buggy,
we read engine->date before checking IS_ERR(engine).
---
kernel/ptrace.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- PU/kernel/ptrace.c~79_FIX_DETACH_ENGINE_DEREF 2009-10-10 17:06:11.000000000 +0200
+++ PU/kernel/ptrace.c 2009-10-10 17:09:34.000000000 +0200
@@ -90,7 +90,6 @@ static struct utrace_engine *ptrace_look
static void ptrace_detach_task(struct task_struct *tracee, int sig)
{
struct utrace_engine *engine = ptrace_lookup_engine(tracee);
- struct ptrace_context *context = ptrace_context(engine);
enum utrace_resume_action action = UTRACE_DETACH;
int err;
@@ -98,6 +97,8 @@ static void ptrace_detach_task(struct ta
return;
if (sig) {
+ struct ptrace_context *context = ptrace_context(engine);
+
switch (get_stop_event(context)) {
case PTRACE_EVENT_SYSCALL_ENTRY:
case PTRACE_EVENT_SYSCALL_EXIT:
More information about the utrace-devel
mailing list