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
@ -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…
x
Reference in New Issue
Block a user