net/hinic: fix negative array index read

Message ID 89aad4deb8394c04209720e79512bee320df2c09.1598250814.git.wangyunjian@huawei.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/hinic: fix negative array index read |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Yunjian Wang Aug. 24, 2020, 12:43 p.m. UTC
  From: Yunjian Wang <wangyunjian@huawei.com>

Negative array index read using variable 'i' as an index to array
'filter_info->pkt_filters'. Fixed by add return value check.

Coverity issue: 350364
Fixes: f4ca3fd54c4d ("net/hinic: create and destroy flow director filter")
Cc: stable@dpdk.org

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
 drivers/net/hinic/hinic_pmd_flow.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Ferruh Yigit Aug. 24, 2020, 12:54 p.m. UTC | #1
On 8/24/2020 1:43 PM, wangyunjian wrote:
> From: Yunjian Wang <wangyunjian@huawei.com>
> 
> Negative array index read using variable 'i' as an index to array
> 'filter_info->pkt_filters'. Fixed by add return value check.
> 
> Coverity issue: 350364
> Fixes: f4ca3fd54c4d ("net/hinic: create and destroy flow director filter")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>

Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
  
Ferruh Yigit Aug. 25, 2020, 9:15 a.m. UTC | #2
On 8/24/2020 1:54 PM, Ferruh Yigit wrote:
> On 8/24/2020 1:43 PM, wangyunjian wrote:
>> From: Yunjian Wang <wangyunjian@huawei.com>
>>
>> Negative array index read using variable 'i' as an index to array
>> 'filter_info->pkt_filters'. Fixed by add return value check.
>>
>> Coverity issue: 350364
>> Fixes: f4ca3fd54c4d ("net/hinic: create and destroy flow director filter")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> 
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 

Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/hinic/hinic_pmd_flow.c b/drivers/net/hinic/hinic_pmd_flow.c
index 503a32fff..70fd4450c 100644
--- a/drivers/net/hinic/hinic_pmd_flow.c
+++ b/drivers/net/hinic/hinic_pmd_flow.c
@@ -2351,6 +2351,8 @@  hinic_add_del_ethertype_filter(struct rte_eth_dev *dev,
 		ethertype_filter.pkt_proto = filter->ether_type;
 		i = hinic_ethertype_filter_lookup(filter_info,
 						&ethertype_filter);
+		if (i < 0)
+			return -EINVAL;
 
 		if ((filter_info->type_mask & (1 << i))) {
 			filter_info->pkt_filters[i].enable = FALSE;