| From 9559861ebfe8d76999e766919b7b3b4dc24bbcd1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 14 Apr 2021 10:40:58 +0200 |
| Subject: virtiofs: fix userns |
| |
| From: Miklos Szeredi <mszeredi@redhat.com> |
| |
| [ 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 | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c |
| index f0a7f1b7b75f..b9cfb1165ff4 100644 |
| --- a/fs/fuse/virtio_fs.c |
| +++ b/fs/fuse/virtio_fs.c |
| @@ -1457,8 +1457,7 @@ static int virtio_fs_get_tree(struct fs_context *fsc) |
| return -ENOMEM; |
| } |
| |
| - 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; |
| -- |
| 2.30.2 |
| |