]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
fuse: prevent fuse_put_request on invalid pointer
authorAnand V. Avati <avati@gluster.com>
Thu, 22 Oct 2009 13:24:52 +0000 (06:24 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 8 Dec 2009 19:17:21 +0000 (11:17 -0800)
commit f60311d5f7670d9539b424e4ed8b5c0872fc9e83 upstream.

fuse_direct_io() has a loop where requests are allocated in each
iteration. if allocation fails, the loop is broken out and follows
into an unconditional fuse_put_request() on that invalid pointer.

Signed-off-by: Anand V. Avati <avati@gluster.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/fuse/file.c

index 0c92f15b9d52067c4c6784e41791dab873088b0f..afdde6093f512bddf77eef9856e3b24d1707163c 100644 (file)
@@ -1005,7 +1005,8 @@ static ssize_t fuse_direct_io(struct file *file, const char __user *buf,
                                break;
                }
        }
-       fuse_put_request(fc, req);
+       if (!IS_ERR(req))
+               fuse_put_request(fc, req);
        if (res > 0) {
                if (write)
                        fuse_write_update_size(inode, pos);