[CRIU] [PATCH] ptrace: Send signals with final state explicitly
Pavel Emelyanov
xemul at parallels.com
Fri Feb 3 05:49:57 EST 2012
According to Oleg the PTRACE_KILL doesn't and was-not-supposed-to work.
Thus, kill tasks to final state explicitly and just detach from them.
Signed-off-by: Pavel Emelyanov <xemul at parallels.com>
---
-------------- next part --------------
diff --git a/ptrace.c b/ptrace.c
index 7b1b128..8a44d81 100644
--- a/ptrace.c
+++ b/ptrace.c
@@ -21,15 +21,14 @@
int unseize_task(pid_t pid, enum cr_task_state st)
{
- if (st == CR_TASK_STOP)
- return ptrace(PTRACE_DETACH, pid, NULL, NULL);
- else if (st == CR_TASK_KILL) {
+ if (st == CR_TASK_KILL)
kill(pid, SIGKILL);
- return ptrace(PTRACE_KILL, pid, NULL, NULL);
- } else {
- BUG_ON(1);
- return -1;
- }
+ else if (st == CR_TASK_STOP)
+ kill(pid, SIGSTOP);
+ else
+ pr_err("Unknown final state %d\n", st);
+
+ return ptrace(PTRACE_DETACH, pid, NULL, NULL);
}
/*
More information about the CRIU
mailing list