]> git.hungrycats.org Git - linux/commitdiff
fuse: fix missing fput on error
authorMiklos Szeredi <mszeredi@suse.cz>
Mon, 26 Jan 2009 14:00:58 +0000 (15:00 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 Feb 2009 17:53:18 +0000 (09:53 -0800)
commit 3ddf1e7f57237ac7c5d5bfb7058f1ea4f970b661 upstream.

Fix the leaking file reference if allocation or initialization of
fuse_conn failed.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/fuse/inode.c

index c7a410118a1ae48af0120a3ce282235acf1a5bbf..755fe24d7ad763fc14ec7445ef04e3318618efbf 100644 (file)
@@ -825,12 +825,16 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
        if (!file)
                return -EINVAL;
 
-       if (file->f_op != &fuse_dev_operations)
+       if (file->f_op != &fuse_dev_operations) {
+               fput(file);
                return -EINVAL;
+       }
 
        fc = new_conn(sb);
-       if (!fc)
+       if (!fc) {
+               fput(file);
                return -ENOMEM;
+       }
 
        fc->flags = d.flags;
        fc->user_id = d.user_id;