From mboxrd@z Thu Jan 1 00:00:00 1970 From: ebiederm@xmission.com (Eric W. Biederman) Subject: [PATCH 9/9] signal: Move PTRACE_EVENT_EXIT into get_signal Date: Thu, 24 Jun 2021 14:03:50 -0500 Message-ID: <87k0mj5bl5.fsf_-_@disp2133> References: <87sg1lwhvm.fsf@disp2133> <6e47eff8-d0a4-8390-1222-e975bfbf3a65@gmail.com> <924ec53c-2fd9-2e1c-bbb1-3fda49809be4@gmail.com> <87eed4v2dc.fsf@disp2133> <5929e116-fa61-b211-342a-c706dcb834ca@gmail.com> <87fsxjorgs.fsf@disp2133> <87a6njf0ia.fsf@disp2133> <87tulpbp19.fsf@disp2133> <87zgvgabw1.fsf@disp2133> <875yy3850g.fsf_-_@disp2133> Mime-Version: 1.0 Return-path: In-Reply-To: <875yy3850g.fsf_-_@disp2133> (Eric W. Biederman's message of "Thu, 24 Jun 2021 13:57:35 -0500") List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Linus Torvalds Cc: Al Viro , Michael Schmitz , linux-arch , Jens Axboe , Oleg Nesterov , Linux Kernel Mailing List , Richard Henderson , Ivan Kokshaysky , Matt Turner , alpha , Geert Uytterhoeven , linux-m68k , Arnd Bergmann , Ley Foon Tan , Tejun Heo , Kees Cook This ensures that we always have all full set of registers available when PTRACE_EVENT_EXIT is called. Something that is not guaranteed for callers of do_exit. Additionally this guarantees PTRACE_EVENT_EXIT will not cause havoc with abnormal exits. Signed-off-by: "Eric W. Biederman" --- kernel/exit.c | 2 -- kernel/signal.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index 51e0c82b3f7d..309f1d71e340 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -763,8 +763,6 @@ void __noreturn do_exit(long code) profile_task_exit(tsk); kcov_task_exit(tsk); - ptrace_event(PTRACE_EVENT_EXIT, code); - validate_creds_for_do_exit(tsk); /* diff --git a/kernel/signal.c b/kernel/signal.c index 63fda9b6bbf9..7214331836bc 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2890,6 +2890,8 @@ bool get_signal(struct ksignal *ksig) if (exit_code & 0x7f) current->flags |= PF_SIGNALED; + ptrace_event(PTRACE_EVENT_EXIT, exit_code); + /* * PF_IO_WORKER threads will catch and exit on fatal signals * themselves. They have cleanup that must be performed, so -- 2.20.1