Messages in this thread | | | Date | Wed, 6 Nov 2013 20:33:11 +0100 | From | Oleg Nesterov <> | Subject | Re: CLONE_PARENT after setns(CLONE_NEWPID) |
| |
Hi Serge,
On 11/06, Serge Hallyn wrote: > > Hi Oleg, > > commit 40a0d32d1eaffe6aac7324ca92604b6b3977eb0e : > "fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID checks" > breaks lxc-attach in 3.12. That code forks a child which does > setns() and then does a clone(CLONE_PARENT). That way the > grandchild can be in the right namespaces (which the child was > not) and be a child of the original task, which is the monitor.
Thanks...
Yes, this is what 40a0d32d1ea explicitly tries to disallow.
> Is there a real danger in allowing CLONE_PARENT > when current->nsproxy->pidns_for_children is not our pidns, > or was this done out of an "over-abundance of caution"?
I am not sure... This all was based on the long discussion, and it was decided that the CLONE_PARENT check should be consistent wrt CLONE_NEWPID and pidns_for_children != task_active_pid_ns().
> Can we > safely revert that new extra check?
Well, usually we do not break user-space, but I am not sure about this case...
Eric, Andy, what do you think?
And if we allow CLONE_PARENT when ->pidns_for_children was changed, should we also allow, say, CLONE_NEWPID && CLONE_PARENT ?
Oleg.
| |