1 diff --git a/kernel/signal.c b/kernel/signal.c
2 index 76f1f25..23f2fa4 100644
5 @@ -573,10 +573,11 @@ static int check_kill_permission(int sig, struct siginfo *info,
6 if (!valid_signal(sig))
10 if ((info != SEND_SIG_NOINFO) &&
11 (is_si_special(info) || !SI_FROMUSER(info)))
15 vxdprintk(VXD_CBIT(misc, 7),
16 "check_kill_permission(%d,%p,%p[#%u,%u])",
17 sig, info, t, vx_task_xid(t), t->pid);
18 @@ -610,13 +611,17 @@ static int check_kill_permission(int sig, struct siginfo *info,
22 + /* FIXME: we shouldn't return ESRCH ever, to avoid
23 + loops, maybe ENOENT or EACCES? */
24 if (!vx_check(vx_task_xid(t), VS_WATCH_P | VS_IDENT)) {
25 vxdprintk(current->xid || VXD_CBIT(misc, 7),
26 "signal %d[%p] xid mismatch %p[#%u,%u] xid=#%u",
27 sig, info, t, vx_task_xid(t), t->pid, current->xid);
33 return security_task_kill(t, info, sig, 0);
36 @@ -1074,7 +1079,7 @@ int kill_pid_info(int sig, struct siginfo *info, struct pid *pid)
39 p = pid_task(pid, PIDTYPE_PID);
40 - if (p && vx_check(vx_task_xid(p), VS_ADMIN | VS_IDENT)) {
41 + if (p && vx_check(vx_task_xid(p), VS_IDENT)) {
42 error = group_send_sig_info(sig, info, p);
43 if (unlikely(error == -ESRCH))