2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-22 01:51:51 +00:00

ptrace: print error code for PTRACE_DETACH

*** CID 139494:  Error handling issues  (CHECKED_RETURN)

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Andrey Vagin 2015-09-01 10:47:30 +03:00 committed by Pavel Emelyanov
parent 35ec944304
commit 83f79c7e8c

View File

@ -39,7 +39,12 @@ int unseize_task(pid_t pid, int orig_st, int st)
} else
pr_err("Unknown final state %d\n", st);
return ptrace(PTRACE_DETACH, pid, NULL, NULL);
if (ptrace(PTRACE_DETACH, pid, NULL, NULL)) {
pr_perror("Unable to detach from %d", pid);
return -1;
}
return 0;
}
int suspend_seccomp(pid_t pid)
@ -79,7 +84,8 @@ int seize_catch_task(pid_t pid)
ret = ptrace(PTRACE_INTERRUPT, pid, NULL, NULL);
if (ret < 0) {
pr_warn("SEIZE %d: can't interrupt task: %s", pid, strerror(errno));
ptrace(PTRACE_DETACH, pid, NULL, NULL);
if (ptrace(PTRACE_DETACH, pid, NULL, NULL))
pr_perror("Unable to detach from %d", pid);
}
return ret;
@ -227,7 +233,8 @@ try_again:
err_stop:
kill(pid, SIGSTOP);
err:
ptrace(PTRACE_DETACH, pid, NULL, NULL);
if (ptrace(PTRACE_DETACH, pid, NULL, NULL))
pr_perror("Unable to detach from %d", pid);
return -1;
}