mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 02:24:51 +00:00
vfio-user: recycle msg on failure
If we fail to read an incoming request, recycle the message. Resolves: Coverity CID 1611807 Resolves: Coverity CID 1611808 Signed-off-by: John Levon <john.levon@nutanix.com> Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com> Link: https://lore.kernel.org/qemu-devel/20251203100316.3604456-6-john.levon@nutanix.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
committed by
Cédric Le Goater
parent
0df8baec95
commit
23c586abf2
@@ -412,11 +412,22 @@ err:
|
||||
for (i = 0; i < numfds; i++) {
|
||||
close(fdp[i]);
|
||||
}
|
||||
if (isreply && msg != NULL) {
|
||||
/* force an error to keep sending thread from hanging */
|
||||
vfio_user_set_error(msg->hdr, EINVAL);
|
||||
msg->complete = true;
|
||||
qemu_cond_signal(&msg->cv);
|
||||
if (msg != NULL) {
|
||||
if (msg->type == VFIO_MSG_REQ) {
|
||||
/*
|
||||
* Clean up the request message on failure. Change type back to
|
||||
* NOWAIT to free.
|
||||
*/
|
||||
msg->type = VFIO_MSG_NOWAIT;
|
||||
vfio_user_recycle(proxy, msg);
|
||||
} else {
|
||||
/*
|
||||
* Report an error back to the sender. Sender will recycle msg.
|
||||
*/
|
||||
vfio_user_set_error(msg->hdr, EINVAL);
|
||||
msg->complete = true;
|
||||
qemu_cond_signal(&msg->cv);
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user