From: Jingxian He hejingxian@huawei.com
The sigaction handler register in restorer will change the original sigaction handler of restoring app, We need to remove them or recover them before resuming app.
Conflict:NA Reference:https://gitee.com/src-openeuler/criu/pulls/21 Signed-off-by: Jingxian He hejingxian@huawei.com --- criu/pie/restorer.c | 20 -------------------- 1 file changed, 20 deletions(-)
diff --git a/criu/pie/restorer.c b/criu/pie/restorer.c index d87236d..603cbee 100644 --- a/criu/pie/restorer.c +++ b/criu/pie/restorer.c @@ -1632,29 +1632,9 @@ long __export_restore_task(struct task_restore_args *args) pr_err("Failed to set SIGCHLD %ld\n", ret); goto core_restore_end; } - ret = sys_sigaction(SIGSEGV, &act, NULL, sizeof(k_rtsigset_t)); - if (ret) { - pr_err("Failed to set SIGCHLD %ld\n", ret); - goto core_restore_end; - } - - ret = sys_sigaction(SIGBUS, &act, NULL, sizeof(k_rtsigset_t)); - if (ret) { - pr_err("Failed to set SIGCHLD %ld\n", ret); - goto core_restore_end; - } - - ret = sys_sigaction(SIGILL, &act, NULL, sizeof(k_rtsigset_t)); - if (ret) { - pr_err("Failed to set SIGCHLD %ld\n", ret); - goto core_restore_end; - }
ksigemptyset(&to_block); ksigaddset(&to_block, SIGCHLD); - ksigaddset(&to_block, SIGSEGV); - ksigaddset(&to_block, SIGBUS); - ksigaddset(&to_block, SIGILL); ret = sys_sigprocmask(SIG_UNBLOCK, &to_block, NULL, sizeof(k_rtsigset_t)); if (ret) { pr_err("Failed to unblock SIGCHLD %ld\n", ret);