From: Christian Schoenebeck <qemu_oss@crudebyte.com>
To: qemu-devel@nongnu.org
Cc: Christian Schoenebeck <qemu_oss@crudebyte.com>,
pannengyuan@huawei.com, mst@redhat.com, groug@kaod.org,
Euler Robot <euler.robot@huawei.com>,
zhang.zhanghailiang@huawei.com
Subject: Re: [PATCH] virtio-9p-device: fix memleak in virtio_9p_device_unrealize
Date: Tue, 14 Jan 2020 15:17:01 +0100 [thread overview]
Message-ID: <1721395.PxUUFA46pP@silver> (raw)
In-Reply-To: <56394079.B7N9aGhjP3@silver>
On Dienstag, 14. Januar 2020 11:08:59 CET Christian Schoenebeck wrote:
> On Dienstag, 14. Januar 2020 08:40:20 CET pannengyuan@huawei.com wrote:
> > From: Pan Nengyuan <pannengyuan@huawei.com>
> >
> > v->vq forgot to cleanup in virtio_9p_device_unrealize, the memory leak
> > stack is as follow:
> >
> > Direct leak of 14336 byte(s) in 2 object(s) allocated from:
> > #0 0x7f819ae43970 (/lib64/libasan.so.5+0xef970) ??:?
> > #1 0x7f819872f49d (/lib64/libglib-2.0.so.0+0x5249d) ??:?
> > #2 0x55a3a58da624 (./x86_64-softmmu/qemu-system-x86_64+0x2c14624)
> >
> > /mnt/sdb/qemu/hw/virtio/virtio.c:2327 #3 0x55a3a571bac7
> > (./x86_64-softmmu/qemu-system-x86_64+0x2a55ac7)
> > /mnt/sdb/qemu/hw/9pfs/virtio-9p-device.c:209 #4 0x55a3a58e7bc6
> > (./x86_64-softmmu/qemu-system-x86_64+0x2c21bc6)
> > /mnt/sdb/qemu/hw/virtio/virtio.c:3504 #5 0x55a3a5ebfb37
> > (./x86_64-softmmu/qemu-system-x86_64+0x31f9b37)
> > /mnt/sdb/qemu/hw/core/qdev.c:876
> >
> > Reported-by: Euler Robot <euler.robot@huawei.com>
> > Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
> > ---
> >
> > hw/9pfs/virtio-9p-device.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
> > index b5a7c03f26..b146387ae2 100644
> > --- a/hw/9pfs/virtio-9p-device.c
> > +++ b/hw/9pfs/virtio-9p-device.c
> > @@ -215,6 +215,7 @@ static void virtio_9p_device_unrealize(DeviceState
> > *dev, Error **errp) V9fsVirtioState *v = VIRTIO_9P(dev);
> >
> > V9fsState *s = &v->state;
> >
> > + virtio_delete_queue(v->vq);
> >
> > virtio_cleanup(vdev);
> > v9fs_device_unrealize_common(s, errp);
> >
> > }
>
> Looks like you are using an old interface. The new one is
>
> void virtio_del_queue(VirtIODevice *vdev, int n);
Ah, my bad, it is actually the other way around, that is I was not up to date;
virtio_delete_queue() was apparently introduced a week ago:
https://lists.gnu.org/archive/html/qemu-devel/2020-01/msg00723.html
The old virtio_del_queue() still exists though:
https://github.com/qemu/qemu/blob/master/hw/virtio/virtio.c#L2339
Having said that, it would probably still make sense to use virtio_del_queue()
instead for now to make it easier for stable branches to merge this fix?
Best regards,
Christian Schoenebeck
next prev parent reply other threads:[~2020-01-14 14:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-14 7:40 [PATCH] virtio-9p-device: fix memleak in virtio_9p_device_unrealize pannengyuan
2020-01-14 10:08 ` Christian Schoenebeck
2020-01-14 14:17 ` Christian Schoenebeck [this message]
2020-01-15 1:28 ` Pan Nengyuan
2020-01-15 11:40 ` Christian Schoenebeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1721395.PxUUFA46pP@silver \
--to=qemu_oss@crudebyte.com \
--cc=euler.robot@huawei.com \
--cc=groug@kaod.org \
--cc=mst@redhat.com \
--cc=pannengyuan@huawei.com \
--cc=qemu-devel@nongnu.org \
--cc=zhang.zhanghailiang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.