From 83f79c7e8ccd4e8735c39d0d010fca7d02814001 Mon Sep 17 00:00:00 2001 From: Andrey Vagin Date: Tue, 1 Sep 2015 10:47:30 +0300 Subject: [PATCH] ptrace: print error code for PTRACE_DETACH *** CID 139494: Error handling issues (CHECKED_RETURN) Signed-off-by: Pavel Emelyanov --- ptrace.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ptrace.c b/ptrace.c index ff319dbeb..324b52419 100644 --- a/ptrace.c +++ b/ptrace.c @@ -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; }