diff options
author | John Levon <john.levon@nutanix.com> | 2025-07-15 13:59:54 +0200 |
---|---|---|
committer | Cédric Le Goater <clg@redhat.com> | 2025-07-15 17:11:12 +0200 |
commit | 622740aad9f39c4266ce00d7478b32c7506e6642 (patch) | |
tree | 153d80605a4e86e79b53f4388d241794774c2d7b | |
parent | ea6788440df37495de6e257ca204cdd669d32b83 (diff) | |
download | qemu-622740aad9f39c4266ce00d7478b32c7506e6642.zip qemu-622740aad9f39c4266ce00d7478b32c7506e6642.tar.gz qemu-622740aad9f39c4266ce00d7478b32c7506e6642.tar.bz2 |
hw/vfio-user: fix use of uninitialized variable
Coverity reported:
CID 1611805: Uninitialized variables
in vfio_user_dma_map(). This can occur in the happy path when
->async_ops was not set; as this doesn't typically happen, it wasn't
caught during testing.
Align both map and unmap implementations to initialize ret the same way
to resolve this.
Resolves: Coverity CID 1611805
Fixes: 18e899e6 ("vfio-user: implement VFIO_USER_DMA_MAP/UNMAP")
Reported-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: John Levon <john.levon@nutanix.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
Link: https://lore.kernel.org/qemu-devel/20250715115954.515819-5-john.levon@nutanix.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
-rw-r--r-- | hw/vfio-user/container.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/hw/vfio-user/container.c b/hw/vfio-user/container.c index d318e6a..d589dd9 100644 --- a/hw/vfio-user/container.c +++ b/hw/vfio-user/container.c @@ -64,8 +64,6 @@ static int vfio_user_dma_unmap(const VFIOContainerBase *bcontainer, 0, &local_err)) { error_report_err(local_err); ret = -EFAULT; - } else { - ret = 0; } } else { if (!vfio_user_send_wait(container->proxy, &msgp->hdr, NULL, @@ -92,7 +90,7 @@ static int vfio_user_dma_map(const VFIOContainerBase *bcontainer, hwaddr iova, bcontainer); int fd = memory_region_get_fd(mrp); Error *local_err = NULL; - int ret; + int ret = 0; VFIOUserFDs *fds = NULL; VFIOUserDMAMap *msgp = g_malloc0(sizeof(*msgp)); @@ -135,8 +133,6 @@ static int vfio_user_dma_map(const VFIOContainerBase *bcontainer, hwaddr iova, 0, &local_err)) { error_report_err(local_err); ret = -EFAULT; - } else { - ret = 0; } } else { VFIOUserFDs local_fds = { 1, 0, &fd }; |