virtiofs fix leak in setup

This can be triggered for example by adding the "-omand" mount option,
which will be rejected and virtio_fs_fill_super() will return an error.

In such a case the allocations for fuse_conn and fuse_mount will leak due
to s_root not yet being set and so ->put_super() not being called.

Fixes: a62a8ef9d9 ("virtio-fs: add virtiofs filesystem")
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
Miklos Szeredi 2020-11-11 17:22:31 +01:00
parent 3993382bb3
commit 66ab33bf6d

View File

@ -1464,6 +1464,8 @@ static int virtio_fs_get_tree(struct fs_context *fsc)
if (!sb->s_root) {
err = virtio_fs_fill_super(sb, fsc);
if (err) {
fuse_mount_put(fm);
sb->s_fs_info = NULL;
deactivate_locked_super(sb);
return err;
}