[Virtio-fs] [PATCH] Virtiofsd: fix memory leak on fuse queueinfo

Liu Bo bo.liu at linux.alibaba.com
Mon Jun 24 21:53:47 UTC 2019


For fuse's queueinfo, both queueinfo array and queueinfos are allocated in
fv_queue_set_started() but not cleaned up when the daemon process quits.

This fixes the leak in proper places.

Signed-off-by: Liu Bo <bo.liu at linux.alibaba.com>
---
 contrib/virtiofsd/fuse_virtio.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/contrib/virtiofsd/fuse_virtio.c b/contrib/virtiofsd/fuse_virtio.c
index bec4105..aa94b66 100644
--- a/contrib/virtiofsd/fuse_virtio.c
+++ b/contrib/virtiofsd/fuse_virtio.c
@@ -763,6 +763,8 @@ static void fv_queue_set_started(VuDev *dev, int qidx, bool started)
                 }
                 close(ourqi->kill_fd);
                 ourqi->kick_fd = -1;
+                free(vud->qi[qidx]);
+                vud->qi[qidx] = NULL;
         }
 }
 
@@ -889,6 +891,7 @@ int virtio_session_mount(struct fuse_session *se)
 void virtio_session_close(struct fuse_session *se)
 {
         close(se->vu_socketfd);
+        free(se->virtio_dev->qi);
         free(se->virtio_dev);
         se->virtio_dev = NULL;
 }
-- 
1.8.3.1




More information about the Virtio-fs mailing list