net/hinic: fix negative array index read
authorYunjian Wang <wangyunjian@huawei.com>
Mon, 24 Aug 2020 12:43:46 +0000 (20:43 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Sep 2020 16:55:06 +0000 (18:55 +0200)
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>
drivers/net/hinic/hinic_pmd_flow.c

index 503a32f..70fd445 100644 (file)
@@ -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;