]> git.kernelconcepts.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, 10 Nov 2009 00:22:44 +0000 (16:22 -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 cbc464043b6f02f1383be3153e24b73b2e8f4875..f47c6c13cd97028563c0d6b821604509fc40a686 100644 (file)
@@ -1063,7 +1063,8 @@ 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)
                *ppos = pos;