From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 78396A00C5; Thu, 7 May 2020 07:23:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1388D1D9B5; Thu, 7 May 2020 07:23:02 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id A15061D993 for ; Thu, 7 May 2020 07:23:00 +0200 (CEST) IronPort-SDR: PJuX5pg6os3hsxsMI5L2Pa5NciTxOtoAMFvPmAbcLSHic5WmePR8R1UPW3SZW12KUvrfWnKEYB ohA87t7dgPtQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2020 22:22:59 -0700 IronPort-SDR: N+/XZ9wQbkdwmJPWdoJlDVFKguaGtcnTTIzvfHrKq+CfxSgucfH9Vw76XXrB183i/Ijx5oujLN 0GPZMlgH09fA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,362,1583222400"; d="scan'208";a="263821678" Received: from yexl-server.sh.intel.com (HELO localhost) ([10.67.116.183]) by orsmga006.jf.intel.com with ESMTP; 06 May 2020 22:22:58 -0700 Date: Thu, 7 May 2020 13:15:12 +0800 From: Ye Xiaolong To: Chenxu Di Cc: dev@dpdk.org, beilei.xing@intel.com Message-ID: <20200507051512.GB49901@intel.com> References: <20200507030928.42082-1-chenxux.di@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200507030928.42082-1-chenxux.di@intel.com> User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [dpdk-dev] [PATCH] net/i40e: fix out of bounds read issue 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 05/07, Chenxu Di wrote: >This patch fixes (out-of-bounds read) coverity issue. > >Coverity issue: 357699 >Coverity issue: 357694 >Fixes: feaae285b342 ("net/i40e: support hash configuration in RSS flow") > >Signed-off-by: Chenxu Di >--- > drivers/net/i40e/i40e_ethdev.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > >diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c >index 749d85f54..6c295ac5a 100644 >--- a/drivers/net/i40e/i40e_ethdev.c >+++ b/drivers/net/i40e/i40e_ethdev.c >@@ -13180,7 +13180,7 @@ i40e_rss_config_hash_function(struct i40e_pf *pf, > } > > for (j = I40E_FILTER_PCTYPE_INVALID + 1; >- j < I40E_FILTER_PCTYPE_MAX; j++) { >+ j < I40E_FILTER_PCTYPE_MAX && i < UINT64_BIT; j++) { I see i is defined as uint32_t, why compare it to UINT64_BIT here? And could you specify where is the out of bounds read before the fix? > if (pf->adapter->pctypes_tbl[i] & (1ULL << j)) > i40e_write_global_rx_ctl(hw, > I40E_GLQF_HSYM(j), >@@ -13312,7 +13312,7 @@ i40e_rss_clear_hash_function(struct i40e_pf *pf, > } > > for (j = I40E_FILTER_PCTYPE_INVALID + 1; >- j < I40E_FILTER_PCTYPE_MAX; j++) { >+ j < I40E_FILTER_PCTYPE_MAX && i < UINT64_BIT; j++) { > if (pf->adapter->pctypes_tbl[i] & (1ULL << j)) > i40e_write_global_rx_ctl(hw, > I40E_GLQF_HSYM(j), >-- >2.17.1 >