copy_namespaces() cannot be used on a live task. There are two reasons - it can be used to assign another task's nsproxy, which is not legal (for a live task). And, it does not use rcu_assign_pointer, so even when we're being extra-clever it is unsafe. Signed-off-by: Serge Hallyn <serue@xxxxxxxxxx> --- kernel/nsproxy.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c index f74e6c0..67d8f2b 100644 --- a/kernel/nsproxy.c +++ b/kernel/nsproxy.c @@ -115,6 +115,9 @@ out_ns: /* * called from clone. This now handles copy for nsproxy and all * namespaces therein. + * Note this should only be used in fork. Specifically, tsk should + * not yet be a live task. See the the unshare code for how to handle + * that. */ int copy_namespaces(unsigned long flags, struct task_struct *tsk) { -- 1.6.3.3 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers