From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: [PATCH 6/6] proc: Set correct userns for new proc super created by a new pid_namespace From: David Howells To: viro@zeniv.linux.org.uk Cc: Andrei Vagin , dhowells@redhat.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Tue, 21 Aug 2018 10:55:37 +0100 Message-ID: <153484533695.1183.7796797839895873922.stgit@warthog.procyon.org.uk> In-Reply-To: <153484529922.1183.17405985592221413059.stgit@warthog.procyon.org.uk> References: <153484529922.1183.17405985592221413059.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: From: Andrei Vagin 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 Signed-off-by: David Howells --- fs/proc/root.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/proc/root.c b/fs/proc/root.c index 1d6e5bfa30cc..1419b48a89ab 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);