Re: [PATCH -mm 0/1] signal: simplify set_user_sigmask/restore_user_sigmask

From: Oleg Nesterov
Date: Thu Jun 06 2019 - 07:09:45 EST


On 06/06, David Laight wrote:
>
> If a signal handler is called, I presume that the trampoline
> calls back into the kernel to get further handlers called
> and to finally restore the original signal mask?

See sigmask_to_save(), this is what the kernel records in uc.uc_sigmask
before the signal handler runs, after that current->saved_sigmask has no
meaning.

When signal handler returns it does sys_rt_sigreturn() which restores
the original mask saved in uc_sigmask.

> What happens if a signal handler calls something that
> would normally write to current->saved_sigmask?

See above.

Oleg.