(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);
Looks right to me.
Thanks,
Roland