2008-03-19 22:59:28

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH] ptrace: ptrace_attach: use send_sig_info() instead force_sig_specific()

(depends on signals-send_sig_info-dont-take-tasklist_lock.patch)

Nobody can block/ignore SIGSTOP, no need to use force_sig_specific() in
ptrace_attach. Use the "regular" send_sig_info().

With this patch stracing of /sbin/init doesn't clear its SIGNAL_UNKILLABLE,
but not that this makes ptracing of init safe.

Signed-off-by: Oleg Nesterov <[email protected]>

--- 25/kernel/ptrace.c~5_PTRACE_STOP_NO_FORCE 2008-03-16 18:33:02.000000000 +0300
+++ 25/kernel/ptrace.c 2008-03-18 19:15:54.000000000 +0300
@@ -217,8 +217,7 @@ repeat:

__ptrace_link(task, current);

- force_sig_specific(SIGSTOP, task);
-
+ send_sig_info(SIGSTOP, SEND_SIG_FORCED, task);
bad:
write_unlock_irqrestore(&tasklist_lock, flags);
task_unlock(task);