[dpdk-dev] [PATCH] vhost: fix accessing uninitialized variables

Xia, Chenbo chenbo.xia at intel.com
Tue Apr 6 08:17:47 CEST 2021


Hi Marvin,

> -----Original Message-----
> From: Liu, Yong <yong.liu at intel.com>
> Sent: Wednesday, March 3, 2021 3:28 PM
> To: maxime.coquelin at redhat.com; Xia, Chenbo <chenbo.xia at intel.com>
> Cc: dev at dpdk.org; Liu, Yong <yong.liu at intel.com>; stable at dpdk.org
> Subject: [PATCH] vhost: fix accessing uninitialized variables
> 
> This patch fixs coverity issue by adding initialization step before
> using temporary virtio header.
> 
> Coverity issue: 366181, 366123
> Fixes: fb3815cc614d ("vhost: handle virtually non-contiguous buffers in Rx-
> mrg")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Marvin Liu <yong.liu at intel.com>
> 
> diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
> index 583bf379c6..fe464b3088 100644
> --- a/lib/librte_vhost/virtio_net.c
> +++ b/lib/librte_vhost/virtio_net.c
> @@ -808,9 +808,10 @@ copy_mbuf_to_desc(struct virtio_net *dev, struct
> vhost_virtqueue *vq,

You should apply the same fix to async_mbuf_to_desc.
Maybe you did not notice: one coverity issue is in copy_mbuf_to_desc, but another
in async_mbuf_to_desc :)

Thanks,
Chenbo

> 
>  	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",
> --
> 2.17.1



More information about the dev mailing list