From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B257FA0A0E; Thu, 29 Apr 2021 05:35:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 54EA24067E; Thu, 29 Apr 2021 05:35:12 +0200 (CEST) Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by mails.dpdk.org (Postfix) with ESMTP id 1DBA14003E for ; Thu, 29 Apr 2021 05:35:09 +0200 (CEST) X-QQ-mid: bizesmtp5t1619667303twbh7x9de Received: from jiawenwu (unknown [183.129.236.74]) by esmtp6.qq.com (ESMTP) with id ; Thu, 29 Apr 2021 11:35:02 +0800 (CST) X-QQ-SSF: 01400000002000D0E000B00A0000000 X-QQ-FEAT: vveQ9JxSdfhiM8B6YMumiqgnm2wrpfdXpU5UhSczr6dRSq35I/US2GS5S+Hlv isg13dvbZscCEabMpZ7tDvAgFYDesc2R48FH6qn9ylNuH3FkEpQe4w3xIOK7tMsOe22cLLo +FNyAbgVJ6MFPp0Bzxv5Ut35bxX5H9XffKnVLGjkMg3CreLEEc/21mDnNxUZ+2fRxdfpBEk celLuRsPe7A34ZWcC9Qdmj1Oh7rwPLsAHciXXBabz5GuBa894XpVRqtaT4s2nJCSqK1BJzQ yyawkVl5VGgPqU3f/BCDVzZtuQzYhJ0Iz2Txuh+TifOopg3DpPY7UduT6Ld2WSd2frPTsuO 2wmVL2KCat1NdjjiCA= X-QQ-GoodBg: 2 From: "Jiawen Wu" To: "'Ferruh Yigit'" , "'Min Hu \(Connor\)'" Cc: References: <1619355269-14802-1-git-send-email-humin29@huawei.com> <57d60499-2ff9-fe16-aa97-93deb6e2cdc6@intel.com> In-Reply-To: <57d60499-2ff9-fe16-aa97-93deb6e2cdc6@intel.com> Date: Thu, 29 Apr 2021 11:35:02 +0800 Message-ID: <008901d73ca8$a3e2efd0$eba8cf70$@trustnetic.com>+D2D799857FD0659B MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQHlLPFVyYnDhIK/QTIFeQkXDTJnwwNE3plFqpTQNDA= Content-Language: zh-cn X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign6 X-QQ-Bgrelay: 1 Subject: Re: [dpdk-dev] [PATCH] net/txgbe: fix null pointer check problem X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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 April 27, 2021 11:31 PM, Ferruh Yigit wrote: > On 4/25/2021 1:54 PM, Min Hu (Connor) wrote: > > From: HongBo Zheng > > > > In function cons_parse_ntuple_filter, item->spec and item->mask should > > be confirmed not null before use memcmp on it, current judgement > > (item->spec || item->mask) just can confirm item->spec or item->mask > > is not null, and cause null pointer be used in memcmp. > > > > This patch fix this problem. > > > > Fixes: b7eeecb17556 ("net/txgbe: parse n-tuple filter") > > Cc: stable@dpdk.org > > > > Signed-off-by: HongBo Zheng > > Signed-off-by: Min Hu (Connor) > > --- > > drivers/net/txgbe/txgbe_flow.c | 18 ++++++++---------- > > 1 file changed, 8 insertions(+), 10 deletions(-) > > > > diff --git a/drivers/net/txgbe/txgbe_flow.c > > b/drivers/net/txgbe/txgbe_flow.c index 57a4f2e..35026ee 100644 > > --- a/drivers/net/txgbe/txgbe_flow.c > > +++ b/drivers/net/txgbe/txgbe_flow.c > > @@ -240,11 +240,10 @@ cons_parse_ntuple_filter(const struct > rte_flow_attr *attr, > > return -rte_errno; > > } > > /* if the first item is MAC, the content should be NULL */ > > - if ((item->spec || item->mask) && > > - (memcmp(eth_spec, ð_null, > > - sizeof(struct rte_flow_item_eth)) || > > - memcmp(eth_mask, ð_null, > > - sizeof(struct rte_flow_item_eth)))) { > > + if ((item->spec && memcmp(eth_spec, ð_null, > > + sizeof(struct rte_flow_item_eth))) || > > + (item->mask && memcmp(eth_mask, ð_null, > > + sizeof(struct rte_flow_item_eth)))) { > > rte_flow_error_set(error, EINVAL, > > RTE_FLOW_ERROR_TYPE_ITEM, > > item, "Not supported by ntuple filter"); @@ -272,11 > +271,10 @@ > > cons_parse_ntuple_filter(const struct rte_flow_attr *attr, > > return -rte_errno; > > } > > /* the content should be NULL */ > > - if ((item->spec || item->mask) && > > - (memcmp(vlan_spec, &vlan_null, > > - sizeof(struct rte_flow_item_vlan)) || > > - memcmp(vlan_mask, &vlan_null, > > - sizeof(struct rte_flow_item_vlan)))) { > > + if ((item->spec && memcmp(vlan_spec, &vlan_null, > > + sizeof(struct rte_flow_item_vlan))) || > > + (item->mask && memcmp(vlan_mask, &vlan_null, > > + sizeof(struct rte_flow_item_vlan)))) { > > rte_flow_error_set(error, EINVAL, > > RTE_FLOW_ERROR_TYPE_ITEM, > > item, "Not supported by ntuple filter"); > > > > Looks good to me, but lets wait or maintainers review. Thanks. Acked-by: Jiawen Wu