* [dpdk-stable] [PATCH] vhost: fix accessing uninitialized variables @ 2021-03-03 7:27 Marvin Liu 2021-03-24 9:54 ` Maxime Coquelin 2021-04-06 6:17 ` [dpdk-stable] " Xia, Chenbo 0 siblings, 2 replies; 6+ messages in thread From: Marvin Liu @ 2021-03-03 7:27 UTC (permalink / raw) To: maxime.coquelin, chenbo.xia; +Cc: dev, Marvin Liu, stable 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@dpdk.org Signed-off-by: Marvin Liu <yong.liu@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", -- 2.17.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-stable] [PATCH] vhost: fix accessing uninitialized variables 2021-03-03 7:27 [dpdk-stable] [PATCH] vhost: fix accessing uninitialized variables Marvin Liu @ 2021-03-24 9:54 ` Maxime Coquelin 2021-03-27 10:06 ` [dpdk-stable] [dpdk-dev] " wangyunjian 2021-04-06 6:17 ` [dpdk-stable] " Xia, Chenbo 1 sibling, 1 reply; 6+ messages in thread From: Maxime Coquelin @ 2021-03-24 9:54 UTC (permalink / raw) To: Marvin Liu, chenbo.xia; +Cc: dev, stable 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@dpdk.org > > Signed-off-by: Marvin Liu <yong.liu@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", > Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Thanks, Maxime ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH] vhost: fix accessing uninitialized variables 2021-03-24 9:54 ` Maxime Coquelin @ 2021-03-27 10:06 ` wangyunjian 2021-03-29 1:44 ` Liu, Yong 0 siblings, 1 reply; 6+ messages in thread From: wangyunjian @ 2021-03-27 10:06 UTC (permalink / raw) To: Maxime Coquelin, Marvin Liu, chenbo.xia; +Cc: dev, stable > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Maxime Coquelin > Sent: Wednesday, March 24, 2021 5:55 PM > To: Marvin Liu <yong.liu@intel.com>; chenbo.xia@intel.com > Cc: dev@dpdk.org; stable@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@dpdk.org > > > > Signed-off-by: Marvin Liu <yong.liu@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@redhat.com> > > Thanks, > Maxime ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH] vhost: fix accessing uninitialized variables 2021-03-27 10:06 ` [dpdk-stable] [dpdk-dev] " wangyunjian @ 2021-03-29 1:44 ` Liu, Yong 0 siblings, 0 replies; 6+ messages in thread From: Liu, Yong @ 2021-03-29 1:44 UTC (permalink / raw) To: wangyunjian, Maxime Coquelin, Xia, Chenbo; +Cc: dev, stable > -----Original Message----- > From: wangyunjian <wangyunjian@huawei.com> > Sent: Saturday, March 27, 2021 6:06 PM > To: Maxime Coquelin <maxime.coquelin@redhat.com>; Liu, Yong > <yong.liu@intel.com>; Xia, Chenbo <chenbo.xia@intel.com> > Cc: dev@dpdk.org; stable@dpdk.org > Subject: RE: [dpdk-dev] [PATCH] vhost: fix accessing uninitialized variables > > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Maxime Coquelin > > Sent: Wednesday, March 24, 2021 5:55 PM > > To: Marvin Liu <yong.liu@intel.com>; chenbo.xia@intel.com > > Cc: dev@dpdk.org; stable@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@dpdk.org > > > > > > Signed-off-by: Marvin Liu <yong.liu@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: > Thanks, yunjian. This patch for reported coverity issue. The problem came from the read of net_hdr->csum_offset when using macro ASSIGN_UNLESS_EQUAL. When net_hdr not completed in the first buffer, temporary net_hdr will be used which hasn't been initialized. Regards, Marvin > 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@redhat.com> > > > > Thanks, > > Maxime ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-stable] [PATCH] vhost: fix accessing uninitialized variables 2021-03-03 7:27 [dpdk-stable] [PATCH] vhost: fix accessing uninitialized variables Marvin Liu 2021-03-24 9:54 ` Maxime Coquelin @ 2021-04-06 6:17 ` Xia, Chenbo 2021-04-07 2:48 ` Liu, Yong 1 sibling, 1 reply; 6+ messages in thread From: Xia, Chenbo @ 2021-04-06 6:17 UTC (permalink / raw) To: Liu, Yong, maxime.coquelin; +Cc: dev, stable Hi Marvin, > -----Original Message----- > From: Liu, Yong <yong.liu@intel.com> > Sent: Wednesday, March 3, 2021 3:28 PM > To: maxime.coquelin@redhat.com; Xia, Chenbo <chenbo.xia@intel.com> > Cc: dev@dpdk.org; Liu, Yong <yong.liu@intel.com>; stable@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@dpdk.org > > Signed-off-by: Marvin Liu <yong.liu@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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-stable] [PATCH] vhost: fix accessing uninitialized variables 2021-04-06 6:17 ` [dpdk-stable] " Xia, Chenbo @ 2021-04-07 2:48 ` Liu, Yong 0 siblings, 0 replies; 6+ messages in thread From: Liu, Yong @ 2021-04-07 2:48 UTC (permalink / raw) To: Xia, Chenbo, maxime.coquelin; +Cc: dev, stable > -----Original Message----- > From: Xia, Chenbo <chenbo.xia@intel.com> > Sent: Tuesday, April 6, 2021 2:18 PM > To: Liu, Yong <yong.liu@intel.com>; maxime.coquelin@redhat.com > Cc: dev@dpdk.org; stable@dpdk.org > Subject: RE: [PATCH] vhost: fix accessing uninitialized variables > > Hi Marvin, > > > -----Original Message----- > > From: Liu, Yong <yong.liu@intel.com> > > Sent: Wednesday, March 3, 2021 3:28 PM > > To: maxime.coquelin@redhat.com; Xia, Chenbo <chenbo.xia@intel.com> > > Cc: dev@dpdk.org; Liu, Yong <yong.liu@intel.com>; stable@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@dpdk.org > > > > Signed-off-by: Marvin Liu <yong.liu@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 for remind, will fix function async_mbuf_to_desc in next version. Regards, Marvin > 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 > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-04-07 2:48 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-03-03 7:27 [dpdk-stable] [PATCH] vhost: fix accessing uninitialized variables Marvin Liu 2021-03-24 9:54 ` Maxime Coquelin 2021-03-27 10:06 ` [dpdk-stable] [dpdk-dev] " wangyunjian 2021-03-29 1:44 ` Liu, Yong 2021-04-06 6:17 ` [dpdk-stable] " Xia, Chenbo 2021-04-07 2:48 ` Liu, Yong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).