aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sys.c
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@tv-sign.ru>2006-01-08 04:03:59 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-08 23:14:01 -0500
commitf7dd795e913656c390b6bde27790c518973feea1 (patch)
treed3e61e8e19018b94e80d2a332fa0b9e304007365 /kernel/sys.c
parente19f247a3dbd85485ec13174817ae9c2478fe541 (diff)
[PATCH] setpgid: should not accept ptraced childs
sys_setpgid() allows to change ->pgrp of ptraced childs. 'man setpgid' does not tell anything about that, so I consider this behaviour is a bug. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: Oren Laadan <orenl@cs.columbia.edu> Cc: Roland McGrath <roland@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/sys.c')
-rw-r--r--kernel/sys.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index f497bf56ada1..218937e837dc 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1114,7 +1114,7 @@ asmlinkage long sys_setpgid(pid_t pid, pid_t pgid)
1114 if (!thread_group_leader(p)) 1114 if (!thread_group_leader(p))
1115 goto out; 1115 goto out;
1116 1116
1117 if (p->parent == current || p->real_parent == group_leader) { 1117 if (p->real_parent == group_leader) {
1118 err = -EPERM; 1118 err = -EPERM;
1119 if (p->signal->session != group_leader->signal->session) 1119 if (p->signal->session != group_leader->signal->session)
1120 goto out; 1120 goto out;