net/ifc: check VFIO query error
authorXiao Wang <xiao.w.wang@intel.com>
Tue, 26 Nov 2019 14:59:31 +0000 (09:59 -0500)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 26 Nov 2019 17:05:15 +0000 (18:05 +0100)
It's possible that we fail to get the IOMMU group of ifcvf device, this
patch adds a check on the return value.

Coverity issue: 349894
Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")
Cc: stable@dpdk.org
Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
drivers/net/ifc/ifcvf_vdpa.c

index 9c562de..da4667b 100644 (file)
@@ -136,15 +136,19 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
        struct rte_pci_device *dev = internal->pdev;
        char devname[RTE_DEV_NAME_MAX_LEN] = {0};
        int iommu_group_num;
-       int i;
+       int i, ret;
 
        internal->vfio_dev_fd = -1;
        internal->vfio_group_fd = -1;
        internal->vfio_container_fd = -1;
 
        rte_pci_device_name(&dev->addr, devname, RTE_DEV_NAME_MAX_LEN);
-       rte_vfio_get_group_num(rte_pci_get_sysfs_path(), devname,
+       ret = rte_vfio_get_group_num(rte_pci_get_sysfs_path(), devname,
                        &iommu_group_num);
+       if (ret <= 0) {
+               DRV_LOG(ERR, "%s failed to get IOMMU group", devname);
+               return -1;
+       }
 
        internal->vfio_container_fd = rte_vfio_container_create();
        if (internal->vfio_container_fd < 0)