--- linux-3.3/fs/proc/base.c~ 2012-03-19 21:44:42.000000000 +0100 +++ linux-3.3/fs/proc/base.c 2012-03-21 12:25:28.051092423 +0100 @@ -568,6 +568,8 @@ struct task_struct *task, int hide_pid_min) { + if (vx_check(0, VS_WATCH_P)) + return true; if (pid->hide_pid < hide_pid_min) return true; if (in_group_p(pid->pid_gid)) --- linux-4.1.3-vs2.3.8.2/kernel/signal.c 2015-09-20 20:06:03.000000000 +0200 +++ testing41/kernel/signal.c 2015-12-05 13:01:00.599373873 +0100 @@ -1369,8 +1369,14 @@ for (;;) { rcu_read_lock(); p = pid_task(pid, PIDTYPE_PID); - if (p && vx_check(vx_task_xid(p), VS_IDENT)) - error = group_send_sig_info(sig, info, p); + if (p) { + if (vx_check(vx_task_xid(p), VS_IDENT)) + error = group_send_sig_info(sig, info, p); + else { + rcu_read_unlock(); + return -ESRCH; + } + } rcu_read_unlock(); if (likely(!p || error != -ESRCH)) return error;