mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 12:16:20 +00:00
fuse: fix missing fput on error
Fix the leaking file reference if allocation or initialization of fuse_conn failed. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> CC: stable@kernel.org
This commit is contained in:
parent
bb875b38dc
commit
3ddf1e7f57
1 changed files with 7 additions and 2 deletions
|
@ -829,15 +829,20 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
|
||||||
if (!file)
|
if (!file)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (file->f_op != &fuse_dev_operations)
|
if (file->f_op != &fuse_dev_operations) {
|
||||||
|
fput(file);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
fc = kmalloc(sizeof(*fc), GFP_KERNEL);
|
fc = kmalloc(sizeof(*fc), GFP_KERNEL);
|
||||||
if (!fc)
|
if (!fc) {
|
||||||
|
fput(file);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
err = fuse_conn_init(fc, sb);
|
err = fuse_conn_init(fc, sb);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
fput(file);
|
||||||
kfree(fc);
|
kfree(fc);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue