if ((info == SEND_SIG_NOINFO || (info != SEND_SIG_PRIV && info != SEND_SIG_FORCED && SI_FROMUSER(info))) 
if ((info == SEND_SIG_NOINFO || (!is_si_special(info) && SI_FROMUSER(info))) 
static int check_kill_permission(int sig, struct siginfo *info,				 struct task_struct *t){	int error = -EINVAL;	if (!valid_signal(sig))		return error;	error = -EPERM;	if ((info == SEND_SIG_NOINFO ||			(info != SEND_SIG_PRIV && info != SEND_SIG_FORCED				&& SI_FROMUSER(info)))	    && ((sig != SIGCONT) ||		(current->signal->session != t->signal->session))	    && (current->euid ^ t->suid) && (current->euid ^ t->uid)	    && (current->uid ^ t->suid) && (current->uid ^ t->uid)	    && !capable(CAP_KILL))		return error;	error = security_task_kill(t, info, sig);	if (!error)		audit_signal_info(sig, t); /* Let audit system see the signal */	return error;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/621d31219d9a788bda924a0613048053f3f5f211/signal.c/buggy/kernel/signal.c