mirror of https://github.com/xemu-project/xemu.git
vhost: Fix element in vhost_svq_add failure
Coverity rightly reports that is not free in that case.
Fixes: Coverity CID 1487559
Fixes: 100890f7ca
("vhost: Shadow virtqueue buffers forwarding")
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Message-Id: <20220512175747.142058-7-eperezma@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
d792199de5
commit
5181db132b
hw/virtio
|
@ -199,11 +199,19 @@ static bool vhost_svq_add_split(VhostShadowVirtqueue *svq,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add an element to a SVQ.
|
||||||
|
*
|
||||||
|
* The caller must check that there is enough slots for the new element. It
|
||||||
|
* takes ownership of the element: In case of failure, it is free and the SVQ
|
||||||
|
* is considered broken.
|
||||||
|
*/
|
||||||
static bool vhost_svq_add(VhostShadowVirtqueue *svq, VirtQueueElement *elem)
|
static bool vhost_svq_add(VhostShadowVirtqueue *svq, VirtQueueElement *elem)
|
||||||
{
|
{
|
||||||
unsigned qemu_head;
|
unsigned qemu_head;
|
||||||
bool ok = vhost_svq_add_split(svq, elem, &qemu_head);
|
bool ok = vhost_svq_add_split(svq, elem, &qemu_head);
|
||||||
if (unlikely(!ok)) {
|
if (unlikely(!ok)) {
|
||||||
|
g_free(elem);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue