proc: Set correct userns for new proc super created by a new pid_namespace Fix the setting up a new proc superblock for a new pid_namespace such that the user_ns for that proc superblock needs to be taken from the new pid_namespace and not the active process. Signed-off-by: Andrei Vagin <avagin@gmail.com> Signed-off-by: David Howells <dhowells@redhat.com>
diff --git a/fs/proc/root.c b/fs/proc/root.c index 1d6e5bf..1419b48 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c
@@ -315,6 +315,11 @@ int pid_ns_prepare_proc(struct pid_namespace *ns) if (IS_ERR(fc)) return PTR_ERR(fc); + if (fc->user_ns != ns->user_ns) { + put_user_ns(fc->user_ns); + fc->user_ns = get_user_ns(ns->user_ns); + } + ctx = fc->fs_private; if (ctx->pid_ns != ns) { put_pid_ns(ctx->pid_ns);