On 5/14/2020 9:16 AM, Di, ChenxuX wrote:
Hi,



-----Original Message-----
From: Guo, Jia
Sent: Wednesday, May 13, 2020 2:51 PM
To: Di, ChenxuX <chenxux...@intel.com>; dev@dpdk.org
Cc: Xing, Beilei <beilei.x...@intel.com>
Subject: Re: [PATCH v3] net/i40e: fix out of bounds read issue

hi, chenxu

On 5/13/2020 10:26 AM, 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 <chenxux...@intel.com>
---
   drivers/net/i40e/i40e_ethdev.c | 6 ++++++
   1 file changed, 6 insertions(+)

diff --git a/drivers/net/i40e/i40e_ethdev.c
b/drivers/net/i40e/i40e_ethdev.c index 749d85f54..c2d5c6835 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -13179,6 +13179,9 @@ i40e_rss_config_hash_function(struct i40e_pf *pf,
                                break;
                }

+               if (i == UINT64_BIT)
+                       return 0;
+
Should this function need to return none zero value and show error info out, or
said should considerate "out of bound" as a configure failed.

It will just find the flow type and do the things. If not find the flow type, 
it just do nothing and return.

i40e_rss_config_hash_function is return int value right, should it always return 0? Should the case of not finding be considerate as none-success config?

                for (j = I40E_FILTER_PCTYPE_INVALID + 1;
                     j < I40E_FILTER_PCTYPE_MAX; j++) {
                        if (pf->adapter->pctypes_tbl[i] & (1ULL << j))
@@ -13311,6 +13314,9 @@ i40e_rss_clear_hash_function(struct i40e_pf *pf,
                                break;
                }

+               if (i == UINT64_BIT)
+                       return 0;
+
                for (j = I40E_FILTER_PCTYPE_INVALID + 1;
                     j < I40E_FILTER_PCTYPE_MAX; j++) {
                        if (pf->adapter->pctypes_tbl[i] & (1ULL << j))

Reply via email to