vhost: fix initialization of async temporary header
authorMarvin Liu <yong.liu@intel.com>
Wed, 7 Apr 2021 03:25:16 +0000 (11:25 +0800)
committerChenbo Xia <chenbo.xia@intel.com>
Wed, 7 Apr 2021 06:41:30 +0000 (08:41 +0200)
This patch fixes coverity issue in async enqueue function by adding
initialization step before using temporary virtio header.

Coverity issue: 366123
Fixes: cd6760da1076 ("vhost: introduce async enqueue for split ring")
Cc: stable@dpdk.org
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
lib/librte_vhost/virtio_net.c

index 48b013a..ff39878 100644 (file)
@@ -986,9 +986,10 @@ async_mbuf_to_desc(struct virtio_net *dev, struct vhost_virtqueue *vq,
 
        hdr_mbuf = m;
        hdr_addr = buf_addr;
-       if (unlikely(buf_len < dev->vhost_hlen))
+       if (unlikely(buf_len < dev->vhost_hlen)) {
+               memset(&tmp_hdr, 0, sizeof(struct virtio_net_hdr_mrg_rxbuf));
                hdr = &tmp_hdr;
-       else
+       else
                hdr = (struct virtio_net_hdr_mrg_rxbuf *)(uintptr_t)hdr_addr;
 
        VHOST_LOG_DATA(DEBUG, "(%d) RX: num merge buffers %d\n",