Dr. David Alan Gilbert (git) writes: > From: Liu Bo > > 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 > Signed-off-by: Eric Ren > --- > tools/virtiofsd/fuse_virtio.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c > index 7b22ae8d4f..a364f23d5d 100644 > --- a/tools/virtiofsd/fuse_virtio.c > +++ b/tools/virtiofsd/fuse_virtio.c > @@ -671,6 +671,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; > } > } > > @@ -878,6 +880,13 @@ int virtio_session_mount(struct fuse_session *se) > void virtio_session_close(struct fuse_session *se) > { > close(se->vu_socketfd); > + > + if (!se->virtio_dev) { > + return; > + } > + > + close(se->vu_socketfd); > + free(se->virtio_dev->qi); > free(se->virtio_dev); > se->virtio_dev = NULL; > } There's a duplicated "close(se->vu_socketfd);" statement here. Sergio.