]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
virtiofs: fix userns
authorMiklos Szeredi <mszeredi@redhat.com>
Wed, 14 Apr 2021 08:40:58 +0000 (10:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 08:29:32 +0000 (10:29 +0200)
[ Upstream commit 0a7419c68a45d2d066b996be5087aa2d07ce80eb ]

get_user_ns() is done twice (once in virtio_fs_get_tree() and once in
fuse_conn_init()), resulting in a reference leak.

Also looks better to use fsc->user_ns (which *should* be the
current_user_ns() at this point).

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/fuse/virtio_fs.c

index 1e5affed158e9d25c0772213b7e2fd33350d6756..005209b1cd50e8689c0027be772025925e273d56 100644 (file)
@@ -1437,8 +1437,7 @@ static int virtio_fs_get_tree(struct fs_context *fsc)
        if (!fm)
                goto out_err;
 
-       fuse_conn_init(fc, fm, get_user_ns(current_user_ns()),
-                      &virtio_fs_fiq_ops, fs);
+       fuse_conn_init(fc, fm, fsc->user_ns, &virtio_fs_fiq_ops, fs);
        fc->release = fuse_free_conn;
        fc->delete_stale = true;
        fc->auto_submounts = true;