[RFC][PATCH 2/7][v4] Protect init from unwanted signals more

Oleg Nesterov oleg at redhat.com
Wed Dec 24 08:35:03 PST 2008


On 12/24, Sukadev Bhattiprolu wrote:
>
> -static int sig_ignored(struct task_struct *t, int sig)
> +static int sig_task_ignored(struct task_struct *t, int sig)
>  {
>  	void __user *handler;
>
> +	handler = sig_handler(t, sig);
> +
> +	if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE) &&
> +			(handler == SIG_IGN || handler == SIG_DFL))
> +		return 1;
> +	
> +	return sig_handler_ignored(handler, sig);

Well, really minor nit, but can't resist ;)

if we check both SIG_IGN and SIG_DFL, then why do we call
sig_handler_ignored() ? We can do

	if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE))
		return handler == SIG_IGN || handler == SIG_DFL;
	return sig_handler_ignored(handler, sig);

Or, we can do

	if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE) &&
			 handler == SIG_DFL)
		return 1;
	return sig_handler_ignored(handler, sig);

because sig_handler_ignored() checks SIG_IGN too.

Of course, this is a matter of taste only...

Oleg.



More information about the Containers mailing list