Re: git: 227d01c1bc7c - main - linux(4): On Linux SIGKILL can not be reset to default

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Mon, 18 Sep 2023 21:05:42 UTC
On Mon, Sep 18, 2023 at 02:53:25PM +0000, Dmitry Chagin wrote:
> The branch main has been updated by dchagin:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=227d01c1bc7caf2e838ee6eef1e6a3cc81d79d1b
> 
> commit 227d01c1bc7caf2e838ee6eef1e6a3cc81d79d1b
> Author:     Dmitry Chagin <dchagin@FreeBSD.org>
> AuthorDate: 2023-09-18 14:53:01 +0000
> Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
> CommitDate: 2023-09-18 14:53:01 +0000
> 
>     linux(4): On Linux SIGKILL can not be reset to default
>     
>     MFC after:              1 week
> ---
>  sys/compat/linux/linux_signal.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c
> index e3e3fc74a6a9..9a84700b3949 100644
> --- a/sys/compat/linux/linux_signal.c
> +++ b/sys/compat/linux/linux_signal.c
> @@ -170,6 +170,7 @@ linux_do_sigaction(struct thread *td, int linux_sig, l_sigaction_t *linux_nsa,
>  
>  	if (!LINUX_SIG_VALID(linux_sig))
>  		return (EINVAL);
> +	sig = linux_to_bsd_signal(linux_sig);
>  
>  	osa = (linux_osa != NULL) ? &oact : NULL;
>  	if (linux_nsa != NULL) {
> @@ -180,9 +181,11 @@ linux_do_sigaction(struct thread *td, int linux_sig, l_sigaction_t *linux_nsa,
>  			linux_ktrsigset(&linux_nsa->lsa_mask,
>  			    sizeof(linux_nsa->lsa_mask));
>  #endif
> +		if ((sig == SIGKILL || sig == SIGSTOP) &&
> +		    nsa->sa_handler == SIG_DFL)
> +			return (EINVAL);
This is excessive: look at kern_sigaction() around line 822.

>  	} else
>  		nsa = NULL;
> -	sig = linux_to_bsd_signal(linux_sig);
>  
>  	error = kern_sigaction(td, sig, nsa, osa, 0);
>  	if (error != 0)