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

wangyunjian wangyunjian at huawei.com
Sat Mar 27 11:06:09 CET 2021


> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Maxime Coquelin
> Sent: Wednesday, March 24, 2021 5:55 PM
> To: Marvin Liu <yong.liu at intel.com>; chenbo.xia at intel.com
> Cc: dev at dpdk.org; stable at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] vhost: fix accessing uninitialized variables
> 
> 
> 
> On 3/3/21 8:27 AM, Marvin Liu wrote:
> > 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,
> >
> >  	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",
> >

I think it's better to revise it in this way:

diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index 583bf37..ccb73b9 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -420,6 +420,8 @@
                        net_hdr->csum_offset = (offsetof(struct rte_sctp_hdr,
                                                cksum));
                        break;
+               default:
+                       ASSIGN_UNLESS_EQUAL(net_hdr->csum_offset, 0);
                }

> 
> Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> 
> Thanks,
> Maxime



More information about the stable mailing list