diff options
author | 2009-09-23 15:57:22 -0700 | |
---|---|---|
committer | 2009-09-24 07:21:04 -0700 | |
commit | e5a4738699d6eca408dcb225bd350413927701e2 (patch) | |
tree | 1a24e5d7d5eb85affbaf435dbe626ba0a401bb62 /kernel | |
parent | fork(): disable CLONE_PARENT for init (diff) | |
download | linux-e5a4738699d6eca408dcb225bd350413927701e2.tar.gz linux-e5a4738699d6eca408dcb225bd350413927701e2.tar.bz2 linux-e5a4738699d6eca408dcb225bd350413927701e2.zip |
pidns: deny CLONE_PARENT|CLONE_NEWPID combination
CLONE_PARENT was used to implement an older threading model. For
consistency with the CLONE_THREAD check in copy_pid_ns(), disable
CLONE_PARENT with CLONE_NEWPID, at least until the required semantics of
pid namespaces are clear.
Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com>
Acked-by: Roland McGrath <roland@redhat.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Cc: Oren Laadan <orenl@cs.columbia.edu>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/pid_namespace.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c index 821722ae58a7..86b3796b0436 100644 --- a/kernel/pid_namespace.c +++ b/kernel/pid_namespace.c @@ -118,7 +118,7 @@ struct pid_namespace *copy_pid_ns(unsigned long flags, struct pid_namespace *old { if (!(flags & CLONE_NEWPID)) return get_pid_ns(old_ns); - if (flags & CLONE_THREAD) + if (flags & (CLONE_THREAD|CLONE_PARENT)) return ERR_PTR(-EINVAL); return create_pid_namespace(old_ns); } |