aboutsummaryrefslogtreecommitdiff
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-09-27 10:44:04 +0100
committerMark Brown <broonie@linaro.org>2013-09-27 10:44:04 +0100
commit67a681c0333be267b80a509151a4553760069bb2 (patch)
treecbc73b3ab21d0ab843d9bd659fe185f9986be5bb /kernel/fork.c
parentdafe3258c5449e2697097285c37c761915053eae (diff)
parent2a0458773656240cf6fa97f1126c92dcddf8ab90 (diff)
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index b394c2036e4f..f9a15a265444 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1188,10 +1188,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
return ERR_PTR(-EINVAL);
/*
- * If the new process will be in a different pid namespace
- * don't allow the creation of threads.
+ * If the new process will be in a different pid namespace don't
+ * allow it to share a thread group or signal handlers with the
+ * forking task.
*/
- if ((clone_flags & (CLONE_VM|CLONE_NEWPID)) &&
+ if ((clone_flags & (CLONE_SIGHAND | CLONE_NEWPID)) &&
(task_active_pid_ns(current) != current->nsproxy->pid_ns))
return ERR_PTR(-EINVAL);