diff mbox series

[06/14] hw/virtio: Free vqs before vhost_dev_cleanup()

Message ID 20240626-san-v1-6-f3cc42302189@daynix.com (mailing list archive)
State New, archived
Headers show
Series Fix check-qtest-ppc64 sanitizer errors | expand

Commit Message

Akihiko Odaki June 26, 2024, 11:06 a.m. UTC
This suppresses LeakSanitizer warnings.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 hw/virtio/vhost-user-base.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Michael S. Tsirkin June 26, 2024, 11:21 a.m. UTC | #1
On Wed, Jun 26, 2024 at 08:06:29PM +0900, Akihiko Odaki wrote:
> This suppresses LeakSanitizer warnings.
> 

more specifically, is there a leak here this fixes?
or a false positive warning?

> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> ---
>  hw/virtio/vhost-user-base.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/hw/virtio/vhost-user-base.c b/hw/virtio/vhost-user-base.c
> index a83167191ee6..124ef536206f 100644
> --- a/hw/virtio/vhost-user-base.c
> +++ b/hw/virtio/vhost-user-base.c
> @@ -223,6 +223,7 @@ static void vub_disconnect(DeviceState *dev)
>  {
>      VirtIODevice *vdev = VIRTIO_DEVICE(dev);
>      VHostUserBase *vub = VHOST_USER_BASE(vdev);
> +    struct vhost_virtqueue *vhost_vqs = vub->vhost_dev.vqs;
>  
>      if (!vub->connected) {
>          return;
> @@ -231,6 +232,7 @@ static void vub_disconnect(DeviceState *dev)
>  
>      vub_stop(vdev);
>      vhost_dev_cleanup(&vub->vhost_dev);
> +    g_free(vhost_vqs);
>  


code does not match $subj

>      /* Re-instate the event handler for new connections */
>      qemu_chr_fe_set_handlers(&vub->chardev,
> 
> -- 
> 2.45.2
diff mbox series

Patch

diff --git a/hw/virtio/vhost-user-base.c b/hw/virtio/vhost-user-base.c
index a83167191ee6..124ef536206f 100644
--- a/hw/virtio/vhost-user-base.c
+++ b/hw/virtio/vhost-user-base.c
@@ -223,6 +223,7 @@  static void vub_disconnect(DeviceState *dev)
 {
     VirtIODevice *vdev = VIRTIO_DEVICE(dev);
     VHostUserBase *vub = VHOST_USER_BASE(vdev);
+    struct vhost_virtqueue *vhost_vqs = vub->vhost_dev.vqs;
 
     if (!vub->connected) {
         return;
@@ -231,6 +232,7 @@  static void vub_disconnect(DeviceState *dev)
 
     vub_stop(vdev);
     vhost_dev_cleanup(&vub->vhost_dev);
+    g_free(vhost_vqs);
 
     /* Re-instate the event handler for new connections */
     qemu_chr_fe_set_handlers(&vub->chardev,