Re: [PATCH 05/17] signal: Bring down all threads when handling a non-coredump fatal signal
From: Oleg Nesterov
Date: Tue Jun 25 2024 - 08:58:26 EST
On 06/18, Eric W. Biederman wrote:
>
> --- a/kernel/signal.c
> +++ b/kernel/signal.c
> @@ -2882,7 +2882,13 @@ bool get_signal(struct ksignal *ksig)
> * Anything else is fatal, maybe with a core dump.
> */
> exit_code = signr;
> - group_exit_needed = true;
> + if (sig_kernel_coredump(signr))
> + group_exit_needed = true;
OK... do_coredump() can fail before coredump_wait() even if CONFIG_COREDUMP
> + else {
> + signal->group_exit_code = exit_code;
> + signal->flags = SIGNAL_GROUP_EXIT;
> + zap_other_threads(current);
> + }
dequeue_signal() and/or ptrace_signal() can drop siglock, I think
the else branch should re-check SIGNAL_GROUP_EXIT/group_exec_task.
Oleg.