Message ID | 20220518225355.784371-10-ebiederm@xmission.com (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | ptrace: cleanups and calling do_cldstop with only siglock | expand |
diff --git a/kernel/signal.c b/kernel/signal.c index ff4a52352390..3d955c23b13d 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2556,9 +2556,10 @@ static int ptrace_signal(int signr, kernel_siginfo_t *info, enum pid_type type) * comment in dequeue_signal(). */ current->jobctl |= JOBCTL_STOP_DEQUEUED; - signr = ptrace_stop(signr, CLD_TRAPPED, 0, info); + ptrace_stop(signr, CLD_TRAPPED, 0, info); /* We're back. Did the debugger cancel the sig? */ + signr = info->si_signo; if (signr == 0) return signr;
Now that siginfo is only modified by the tracer and that siginfo is cleared with the signal is canceled have ptrace_signal directly examine siginfo. This makes the code a little simpler and handles the case when the tracer exits without calling ptrace_detach. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> --- kernel/signal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)