From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 8213E47CE; Fri, 22 Sep 2017 15:22:02 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Sep 2017 06:22:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,427,1500966000"; d="scan'208";a="315075352" Received: from irsmsx101.ger.corp.intel.com ([163.33.3.153]) by fmsmga004.fm.intel.com with ESMTP; 22 Sep 2017 06:21:59 -0700 Received: from irsmsx112.ger.corp.intel.com (10.108.20.5) by IRSMSX101.ger.corp.intel.com (163.33.3.153) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 22 Sep 2017 14:19:17 +0100 Received: from irsmsx109.ger.corp.intel.com ([169.254.13.28]) by irsmsx112.ger.corp.intel.com ([169.254.1.142]) with mapi id 14.03.0319.002; Fri, 22 Sep 2017 14:19:17 +0100 From: "Jastrzebski, MichalX K" To: "Jastrzebski, MichalX K" , "yliu@fridaylinux.org" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Jain, Deepak K" , "Kulasek, TomaszX" , "yongwang@vmware.com" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/vmxnet3: fix dereference before null check Thread-Index: AQHTM6PzjiEjBZaeBUebK/pxOxQpOqLA4zYQ Date: Fri, 22 Sep 2017 13:19:16 +0000 Message-ID: <60ABE07DBB3A454EB7FAD707B4BB158213C3E237@IRSMSX109.ger.corp.intel.com> References: <20170922130752.1908-1-michalx.k.jastrzebski@intel.com> In-Reply-To: <20170922130752.1908-1-michalx.k.jastrzebski@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWJlZDM0NjYtMmJjZi00YWJhLWI0ZWUtYTkzYjc5YjhjZjI2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6ImpIK0IzZ1VueVQzVFozbVNrd1J4MTZUK2p4UnBZTEpQcmJQdllZM0RWNUE9In0= x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/vmxnet3: fix dereference before null check X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Sep 2017 13:22:03 -0000 > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michal Jastrzebski > Sent: Friday, September 22, 2017 3:08 PM > To: yliu@fridaylinux.org; maxime.coquelin@redhat.com > Cc: dev@dpdk.org; Jain, Deepak K ; Kulasek, > TomaszX ; yongwang@vmware.com; > stable@dpdk.org > Subject: [dpdk-dev] [PATCH] net/vmxnet3: fix dereference before null chec= k >=20 > From: Tomasz Kulasek >=20 > Coverity error: >=20 > check_after_deref: Null-checking rq suggests that it may be null, but it > has already been dereferenced on all paths leading to > the check. >=20 > This patch moves NULL checking of "rq" at the very beginning of the path > before any dereference. >=20 > Coverity issue: 143468 > Fixes: 5aecdc17a97d ("vmxnet3: fix stop/restart") > Cc: yongwang@vmware.com > Cc: stable@dpdk.org >=20 > Signed-off-by: Tomasz Kulasek > --- > drivers/net/vmxnet3/vmxnet3_rxtx.c | 17 ++++++++--------- > 1 file changed, 8 insertions(+), 9 deletions(-) >=20 > diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c > b/drivers/net/vmxnet3/vmxnet3_rxtx.c > index d9cf437..4fcceb4 100644 > --- a/drivers/net/vmxnet3/vmxnet3_rxtx.c > +++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c > @@ -259,17 +259,16 @@ > { > int i; > vmxnet3_rx_queue_t *rq =3D rxq; > - struct vmxnet3_hw *hw =3D rq->hw; > struct vmxnet3_cmd_ring *ring0, *ring1; > struct vmxnet3_comp_ring *comp_ring; > - struct vmxnet3_rx_data_ring *data_ring =3D &rq->data_ring; > int size; >=20 > - if (rq !=3D NULL) { > - /* Release both the cmd_rings mbufs */ > - for (i =3D 0; i < VMXNET3_RX_CMDRING_SIZE; i++) > - vmxnet3_rx_cmd_ring_release_mbufs(&rq- > >cmd_ring[i]); > - } > + if (rq =3D=3D NULL) > + return; > + > + /* Release both the cmd_rings mbufs */ > + for (i =3D 0; i < VMXNET3_RX_CMDRING_SIZE; i++) > + vmxnet3_rx_cmd_ring_release_mbufs(&rq->cmd_ring[i]); >=20 > ring0 =3D &rq->cmd_ring[0]; > ring1 =3D &rq->cmd_ring[1]; > @@ -287,8 +286,8 @@ >=20 > size =3D sizeof(struct Vmxnet3_RxDesc) * (ring0->size + ring1->size); > size +=3D sizeof(struct Vmxnet3_RxCompDesc) * comp_ring->size; > - if (VMXNET3_VERSION_GE_3(hw) && rq->data_desc_size) > - size +=3D rq->data_desc_size * data_ring->size; > + if (VMXNET3_VERSION_GE_3(rq->hw) && rq->data_desc_size) > + size +=3D rq->data_desc_size * rq->data_ring.size; >=20 > memset(ring0->base, 0, size); > } > -- > 1.9.1 I am sorry, please ignore this mail.