diff mbox series

[PULL,14/22] vhost: fix the fd leak

Message ID 18f2971ce403008d5e1c2875b483c9d1778143dc.1691101215.git.mst@redhat.com
State New
Headers show
Series [PULL,01/22] hw/virtio-iommu: Fix potential OOB access in virtio_iommu_handle_command() | expand

Commit Message

Michael S. Tsirkin Aug. 3, 2023, 10:21 p.m. UTC
From: Li Feng <fengli@smartx.com>

When the vhost-user reconnect to the backend, the notifer should be
cleanup. Otherwise, the fd resource will be exhausted.

Fixes: f9a09ca3ea ("vhost: add support for configure interrupt")

Signed-off-by: Li Feng <fengli@smartx.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <20230731121018.2856310-2-fengli@smartx.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
---
 hw/virtio/vhost.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Michael Tokarev Aug. 4, 2023, 4:36 a.m. UTC | #1
04.08.2023 01:21, Michael S. Tsirkin wrote:
> From: Li Feng <fengli@smartx.com>
> 
> When the vhost-user reconnect to the backend, the notifer should be
> cleanup. Otherwise, the fd resource will be exhausted.
> 
> Fixes: f9a09ca3ea ("vhost: add support for configure interrupt")
> 
> Signed-off-by: Li Feng <fengli@smartx.com>
> Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
> Message-Id: <20230731121018.2856310-2-fengli@smartx.com>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> Tested-by: Fiona Ebner <f.ebner@proxmox.com>

This smells like a stable-8.0 material. Please let me know if it is not.

/mjt
Michael Tokarev Aug. 4, 2023, 4:56 a.m. UTC | #2
04.08.2023 07:36, Michael Tokarev wrote:
> This smells like a stable-8.0 material. Please let me know if it is not.

Ah, it is, Cc'd -stable already. N/m, picked this one up.

/mjt
diff mbox series

Patch

diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index abf0d03c8d..e2f6ffb446 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -2044,6 +2044,8 @@  void vhost_dev_stop(struct vhost_dev *hdev, VirtIODevice *vdev, bool vrings)
     event_notifier_test_and_clear(
         &hdev->vqs[VHOST_QUEUE_NUM_CONFIG_INR].masked_config_notifier);
     event_notifier_test_and_clear(&vdev->config_notifier);
+    event_notifier_cleanup(
+        &hdev->vqs[VHOST_QUEUE_NUM_CONFIG_INR].masked_config_notifier);
 
     trace_vhost_dev_stop(hdev, vdev->name, vrings);