Commit 196d4fc5 authored by Bo Su's avatar Bo Su Committed by Paolo Bonzini
Browse files

virtio-scsi-dataplane: fix memory leak in virtio_scsi_vring_init



if k->set_host_notifier failed, VirtIOSCSIVring *r will leak

Signed-off-by: default avatarBo Su <subo7@huawei.com>
Message-Id: <1426671732-80213-1-git-send-email-subo7@huawei.com>
Reviewed-by: default avatarFam Zheng <famz@redhat.com>
Reviewed-by: default avatarGonglei <arei.gonglei@huawei.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 89d5cbdd
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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);