Free request in fuse_reply_data()
authorMiklos Szeredi <mszeredi@suse.cz>
Fri, 9 Dec 2011 15:07:55 +0000 (16:07 +0100)
committerMiklos Szeredi <mszeredi@suse.cz>
Fri, 9 Dec 2011 15:07:55 +0000 (16:07 +0100)
Fix memory leak caused by a missing fuse_request_free() in fuse_reply_data().

ChangeLog
lib/fuse_lowlevel.c

index 3f9ba399522674c2725dc3947ffdc7722e722148..404c81fad90fef646990b586d3fafd40622a2c7a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,8 @@
        returned for unlinked but still open files if the kernel sent a
        FORGET request for the parent directory.
 
+       * Free request in fuse_reply_data().
+
 2011-12-08  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix build if FUSE_NODE_SLAB is not defined.  Patch by Emmanuel
index 3bfc9932d652ce20f4be451b6afaa0a75a383f0b..b1c7a2498a4090e675c3d64d3a0ceadf357307f2 100644 (file)
@@ -769,10 +769,12 @@ int fuse_reply_data(fuse_req_t req, struct fuse_bufvec *bufv,
        out.error = 0;
 
        res = fuse_send_data_iov(req->f, req->ch, iov, 1, bufv, flags);
-       if (res <= 0)
+       if (res <= 0) {
+               fuse_free_req(req);
                return res;
-       else
+       } else {
                return fuse_reply_err(req, res);
+       }
 }
 
 int fuse_reply_statfs(fuse_req_t req, const struct statvfs *stbuf)