vhost: fix missing device pointer validity check
authorPatrick Fu <patrick.fu@intel.com>
Tue, 21 Jul 2020 03:23:04 +0000 (11:23 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 21 Jul 2020 14:50:29 +0000 (16:50 +0200)
This patch adds the check of dev pointer in vhost async enqueue
completion poll. If a NULL dev pointer detected, the poll function
returns immediately.

Coverity issue: 360839
Fixes: cd6760da1076 ("vhost: introduce async enqueue for split ring")

Signed-off-by: Patrick Fu <patrick.fu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_vhost/virtio_net.c

index 1d0be3d..235c31e 100644 (file)
@@ -1635,6 +1635,9 @@ uint16_t rte_vhost_poll_enqueue_completed(int vid, uint16_t queue_id,
        uint16_t start_idx, pkts_idx, vq_size;
        uint64_t *async_pending_info;
 
+       if (!dev)
+               return 0;
+
        VHOST_LOG_DATA(DEBUG, "(%d) %s\n", dev->vid, __func__);
        if (unlikely(!is_valid_virt_queue_idx(queue_id, 0, dev->nr_vring))) {
                VHOST_LOG_DATA(ERR, "(%d) %s: invalid virtqueue idx %d.\n",