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 5B710A0548; Wed, 21 Apr 2021 05:54:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3AB7F418DB; Wed, 21 Apr 2021 05:54:21 +0200 (CEST) Received: from szxga07-in.huawei.com (szxga07-in.huawei.com [45.249.212.35]) by mails.dpdk.org (Postfix) with ESMTP id 66AB8418AA for ; Wed, 21 Apr 2021 05:54:20 +0200 (CEST) Received: from DGGEMS409-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4FQ67J0MLWz7wWL for ; Wed, 21 Apr 2021 11:51:56 +0800 (CST) Received: from [127.0.0.1] (10.40.190.165) by DGGEMS409-HUB.china.huawei.com (10.3.19.209) with Microsoft SMTP Server id 14.3.498.0; Wed, 21 Apr 2021 11:54:11 +0800 To: "Li, Xiaoyun" , "Min Hu (Connor)" , "dev@dpdk.org" CC: "Yigit, Ferruh" , "Wu, Jingjing" References: <1618970896-37852-1-git-send-email-humin29@huawei.com> <1618970896-37852-2-git-send-email-humin29@huawei.com> From: fengchengwen Message-ID: <08d4ad1f-5b6a-5ac1-e7f8-5feec8fd2e9c@huawei.com> Date: Wed, 21 Apr 2021 11:54:10 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.40.190.165] X-CFilter-Loop: Reflected Subject: Re: [dpdk-dev] [PATCH 1/2] raw/ntb: check spad user index 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 2021/4/21 11:31, Li, Xiaoyun wrote: > Hi > >> -----Original Message----- >> From: Min Hu (Connor) >> Sent: Wednesday, April 21, 2021 10:08 >> To: dev@dpdk.org >> Cc: Yigit, Ferruh ; Li, Xiaoyun ; >> Wu, Jingjing >> Subject: [PATCH 1/2] raw/ntb: check spad user index >> >> From: Chengwen Feng >> >> This patch adds checking spad user index validity when set or get attr. >> >> Fixes: 277310027965 ("raw/ntb: introduce NTB raw device driver") >> Cc: stable@dpdk.org >> >> Signed-off-by: Chengwen Feng >> Signed-off-by: Min Hu (Connor) >> --- >> drivers/raw/ntb/ntb.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c index >> 6dd213e..0f0e3f2 100644 >> --- a/drivers/raw/ntb/ntb.c >> +++ b/drivers/raw/ntb/ntb.c >> @@ -1080,6 +1080,10 @@ ntb_attr_set(struct rte_rawdev *dev, const char >> *attr_name, >> if (hw->ntb_ops->spad_write == NULL) >> return -ENOTSUP; >> index = atoi(&attr_name[NTB_SPAD_USER_LEN]); >> + if (index < 0 || index >= NTB_SPAD_USER_MAX_NUM) { >> + NTB_LOG(ERR, "Invalid attribute (%s)", attr_name); >> + return -EINVAL; >> + } > > It's unnecessary. The value will be checked in intel_ntb_spad_write(). There will be error remind in that. index maybe large, and then hw->spad_user_list[index] may lead to segmentation fault. so the verification is required. > >> (*hw->ntb_ops->spad_write)(dev, hw->spad_user_list[index], >> 1, attr_value); >> NTB_LOG(DEBUG, "Set attribute (%s) Value (%" PRIu64 ")", @@ >> -1174,6 +1178,10 @@ ntb_attr_get(struct rte_rawdev *dev, const char >> *attr_name, >> if (hw->ntb_ops->spad_read == NULL) >> return -ENOTSUP; >> index = atoi(&attr_name[NTB_SPAD_USER_LEN]); >> + if (index < 0 || index >= NTB_SPAD_USER_MAX_NUM) { >> + NTB_LOG(ERR, "Attribute (%s) out of range", >> attr_name); >> + return -EINVAL; >> + } > > Same as above. > >> *attr_value = (*hw->ntb_ops->spad_read)(dev, >> hw->spad_user_list[index], 0); >> NTB_LOG(DEBUG, "Attribute (%s) Value (%" PRIu64 ")", >> -- >> 2.7.4 > > > . >