examples/vhost: check memory table query
authorChenbo Xia <chenbo.xia@intel.com>
Fri, 19 Feb 2021 02:40:11 +0000 (10:40 +0800)
committerChenbo Xia <chenbo.xia@intel.com>
Wed, 31 Mar 2021 06:46:32 +0000 (08:46 +0200)
This patch fixes unchecked return value for rte_vhost_get_mem_table(),
which is reported by coverity.

Coverity issue: 364233
Fixes: ca059fa5e290 ("examples/vhost: demonstrate the new generic APIs")
Cc: stable@dpdk.org
Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
examples/vhost/virtio_net.c

index 64bf3d1..9064fc3 100644 (file)
@@ -23,6 +23,7 @@ vs_vhost_net_setup(struct vhost_dev *dev)
        uint16_t i;
        int vid = dev->vid;
        struct vhost_queue *queue;
+       int ret;
 
        RTE_LOG(INFO, VHOST_CONFIG,
                "setting builtin vhost-user net driver\n");
@@ -33,7 +34,12 @@ vs_vhost_net_setup(struct vhost_dev *dev)
        else
                dev->hdr_len = sizeof(struct virtio_net_hdr);
 
-       rte_vhost_get_mem_table(vid, &dev->mem);
+       ret = rte_vhost_get_mem_table(vid, &dev->mem);
+       if (ret < 0) {
+               RTE_LOG(ERR, VHOST_CONFIG, "Failed to get "
+                       "VM memory layout for device(%d)\n", vid);
+               return;
+       }
 
        dev->nr_vrings = rte_vhost_get_vring_num(vid);
        for (i = 0; i < dev->nr_vrings; i++) {