virtio-scsi-dataplane: fix memory leak in virtio_scsi_vring_init
PATCH 1/1 virtio-scsi-dataplane: fix memory leak in virtio_scsi_vring_init
if k->set_host_notifier failed, VirtIOSCSIVring *r will leak
Signed-off-by Bo Su <[email protected]>
--- hw/scsi/virtio-scsi-dataplane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
hw/scsi/virtio-scsi-dataplane.c +3 -1
@@ -45,7 +45,7 @@ static VirtIOSCSIVring *virtio_scsi_vring_init(VirtIOSCSI *s, {BusState *qbus =BUS (qdev_get_parent_bus (DEVICE (s)));VirtioBusClass *k =VIRTIO_BUS_GET_CLASS (qbus); -VirtIOSCSIVring *r =g_slice_new (VirtIOSCSIVring); +VirtIOSCSIVring *r;int rc;/* Set up virtqueue notify */
@@ -56,6 +56,8 @@ static VirtIOSCSIVring *virtio_scsi_vring_init(VirtIOSCSI *s, s->dataplane_fenced = true;return NULL ; } + + r =g_slice_new (VirtIOSCSIVring); r->host_notifier = *virtio_queue_get_host_notifier (vq); r->guest_notifier = *virtio_queue_get_guest_notifier (vq);aio_set_event_notifier (s->ctx, &r->host_notifier, handler);
Signature · 1 line
1.8.5
Quoted 33 lines · Bo Su
if
k->set_host_notifierfailed, VirtIOSCSIVring *r will leakSigned-off-by Bo Su <[email protected]>--- hw/scsi/virtio-scsi-dataplane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)hw/scsi/virtio-scsi-dataplane.c +3
-1@@ -45,7 +45,7 @@ static VirtIOSCSIVring *virtio_scsi_vring_init(VirtIOSCSI *s, {BusState *qbus =BUS (qdev_get_parent_bus (DEVICE (s)));VirtioBusClass *k =VIRTIO_BUS_GET_CLASS (qbus); -VirtIOSCSIVring *r =g_slice_new (VirtIOSCSIVring); +VirtIOSCSIVring *r;int rc;/* Set up virtqueue notify */ @@ -56,6 +56,8 @@ static VirtIOSCSIVring *virtio_scsi_vring_init(VirtIOSCSI *s, s->dataplane_fenced = true;return NULL ; } + + r =g_slice_new (VirtIOSCSIVring); r->host_notifier = *virtio_queue_get_host_notifier (vq); r->guest_notifier = *virtio_queue_get_guest_notifier (vq);aio_set_event_notifier (s->ctx, &r->host_notifier, handler);Signature · 1 line
1.8.5
Reviewed-by Fam Zheng <[email protected]>
Quoted 6 lines · Bo Su
if
k->set_host_notifierfailed, VirtIOSCSIVring *r will leakSigned-off-by Bo Su <[email protected]>--- hw/scsi/virtio-scsi-dataplane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Reviewed-by Gonglei <[email protected]>
Quoted 22 lines · Bo Su
if
k->set_host_notifierfailed, VirtIOSCSIVring *r will leakSigned-off-by Bo Su <[email protected]>--- hw/scsi/virtio-scsi-dataplane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)hw/scsi/virtio-scsi-dataplane.c +1
-1@@ -45,7 +45,7 @@ static VirtIOSCSIVring *virtio_scsi_vring_init(VirtIOSCSI *s, {BusState *qbus =BUS (qdev_get_parent_bus (DEVICE (s)));VirtioBusClass *k =VIRTIO_BUS_GET_CLASS (qbus); -VirtIOSCSIVring *r =g_slice_new (VirtIOSCSIVring); +VirtIOSCSIVring *r;int rc;/* Set up virtqueue notify */
hw/scsi/virtio-scsi-dataplane.c static VirtIOSCSIVring *virtio_scsi_vring_init(VirtIOSCSI *s, · line 63
Quoted 8 lines
hw/scsi/virtio-scsi-dataplane.c +2
-0@@ -56,6 +56,8 @@ static VirtIOSCSIVring *virtio_scsi_vring_init(VirtIOSCSI *s, s->dataplane_fenced = true;return NULL ; } + + r =g_slice_new (VirtIOSCSIVring); r->host_notifier = *virtio_queue_get_host_notifier (vq); r->guest_notifier = *virtio_queue_get_guest_notifier (vq);aio_set_event_notifier (s->ctx, &r->host_notifier, handler);
Thanks, queued for 2.3.
Paolo