Re: Q: SEGSEGV && uc_mcontext->ip (Was: Signal delivery order)

From: Oleg Nesterov
Date: Tue Mar 17 2009 - 00:30:51 EST


Sorry for noise, forgot to mention,

On 03/17, Oleg Nesterov wrote:
>
> --- arch/x86/mm/fault.c
> +++ arch/x86/mm/fault.c
> @@ -177,6 +177,13 @@ static void force_sig_info_fault(int si_
> {
> siginfo_t info;
>
> + current->saved_sigmask = current->blocked;
> + spin_lock_irq(&current->sighand->siglock);
> + siginitsetinv(&current->blocked, sigmask(si_signo) |
> + sigmask(SIGKILL) | sigmask(SIGSTOP));
> + spin_unlock_irq(&current->sighand->siglock);
> + set_restore_sigmask();
> +

Of course, this change is wrong, it is just for illustration.
We shouldn't unblock si_signo if it was blocked, force_sig_info()
sets SIG_DFL in this case.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/