From: Eric Auger <eric.au...@redhat.com> In case no IOMMUPciBus/IOMMUDevice are found we need to properly set the error handle and return.
Fixes : Coverity CID 1549006 Signed-off-by: Eric Auger <eric.au...@redhat.com> Fixes: cf2647a76e ("virtio-iommu: Compute host reserved regions") Reviewed-by: Cédric Le Goater <c...@redhat.com> Reviewed-by: Zhenzhong Duan <zhenzhong.d...@intel.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> --- hw/virtio/virtio-iommu.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 7c54c6b5e260e65b555e63809ed247254c785d3f..8fe69ab094f501fced7098f1ba790c26e63aa775 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -563,10 +563,15 @@ static int virtio_iommu_set_host_iova_ranges(VirtIOIOMMU *s, PCIBus *bus, int ret = -EINVAL; if (!sbus) { - error_report("%s no sbus", __func__); + error_setg(errp, "%s: no IOMMUPciBus found!", __func__); + return ret; } sdev = sbus->pbdev[devfn]; + if (!sdev) { + error_setg(errp, "%s: no IOMMUDevice found!", __func__); + return ret; + } current_ranges = sdev->host_resv_ranges; -- 2.45.2