aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2014-05-16 17:44:06 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2014-05-16 17:52:28 +0200
commit91e7fcca4743cf694eb0c8e7a8d938cf359b5bd8 (patch)
treeb13c323629f79531781a02e3b3e1002b77fddd4c
parentc4ce4c4b1f28095947d72abb0fb7de6c8d8efdb3 (diff)
downloadqemu-91e7fcca4743cf694eb0c8e7a8d938cf359b5bd8.zip
qemu-91e7fcca4743cf694eb0c8e7a8d938cf359b5bd8.tar.gz
qemu-91e7fcca4743cf694eb0c8e7a8d938cf359b5bd8.tar.bz2
virtio-scsi: Plug memory leak on virtio_scsi_push_event() error path
Spotted by Coverity. Signed-off-by: Markus Armbruster <armbru@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--hw/scsi/virtio-scsi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index b0d7517..91a62ce 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -489,7 +489,7 @@ static void virtio_scsi_push_event(VirtIOSCSI *s, SCSIDevice *dev,
uint32_t event, uint32_t reason)
{
VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(s);
- VirtIOSCSIReq *req = virtio_scsi_pop_req(s, vs->event_vq);
+ VirtIOSCSIReq *req;
VirtIOSCSIEvent *evt;
VirtIODevice *vdev = VIRTIO_DEVICE(s);
int in_size;
@@ -498,6 +498,7 @@ static void virtio_scsi_push_event(VirtIOSCSI *s, SCSIDevice *dev,
return;
}
+ req = virtio_scsi_pop_req(s, vs->event_vq);
if (!req) {
s->events_dropped = true;
return;