net/cpfl: fix coverity issue 403269, 403270 and 403272
Checks
Commit Message
From: Wenjing Qiao <wenjing.qiao@intel.com>
Fix logically dead code and dereference before null check
issues reported in coverity scan.
Coverity issue: 403269
Coverity issue: 403270
Coverity issue: 403272
Fixes: 41f20298ee8c ("net/cpfl: parse flow offloading hint from JSON")
Fixes: 6cc97c9971d7 ("net/cpfl: build action mapping rules from JSON")
Signed-off-by: Wenjing Qiao <wenjing.qiao@intel.com>
---
drivers/net/cpfl/cpfl_ethdev.h | 3 +--
drivers/net/cpfl/cpfl_flow_parser.c | 4 ----
2 files changed, 1 insertion(+), 6 deletions(-)
Comments
> -----Original Message-----
> From: Qiao, Wenjing <wenjing.qiao@intel.com>
> Sent: Thursday, October 19, 2023 5:24 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Qiao, Wenjing
> <wenjing.qiao@intel.com>
> Subject: [PATCH] net/cpfl: fix coverity issue 403269, 403270 and 403272
>
> From: Wenjing Qiao <wenjing.qiao@intel.com>
>
> Fix logically dead code and dereference before null check issues reported in
> coverity scan.
>
> Coverity issue: 403269
> Coverity issue: 403270
> Coverity issue: 403272
> Fixes: 41f20298ee8c ("net/cpfl: parse flow offloading hint from JSON")
> Fixes: 6cc97c9971d7 ("net/cpfl: build action mapping rules from JSON")
>
> Signed-off-by: Wenjing Qiao <wenjing.qiao@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
@@ -280,7 +280,6 @@ cpfl_get_port_id(struct cpfl_itf *itf)
static inline uint16_t
cpfl_get_vsi_id(struct cpfl_itf *itf)
{
- struct cpfl_adapter_ext *adapter = itf->adapter;
struct cpfl_vport_info *info;
uint32_t vport_id;
int ret;
@@ -301,7 +300,7 @@ cpfl_get_vsi_id(struct cpfl_itf *itf)
vport_identity.pf_id = CPFL_ACC_CPF_ID;
vport_identity.vf_id = 0;
vport_identity.vport_id = vport_id;
- ret = rte_hash_lookup_data(adapter->vport_map_hash,
+ ret = rte_hash_lookup_data(itf->adapter->vport_map_hash,
&vport_identity,
(void **)&info);
if (ret < 0) {
@@ -844,8 +844,6 @@ cpfl_parser_destroy(struct cpfl_flow_js_parser *parser)
for (i = 0; i < parser->pr_size; i++) {
struct cpfl_flow_js_pr *pattern = &parser->patterns[i];
- if (!pattern)
- continue;
for (j = 0; j < pattern->key.proto_size; j++)
rte_free(pattern->key.protocols[j].fields);
rte_free(pattern->key.protocols);
@@ -863,8 +861,6 @@ cpfl_parser_destroy(struct cpfl_flow_js_parser *parser)
for (i = 0; i < parser->mr_size; i++) {
struct cpfl_flow_js_mr *mr = &parser->modifications[i];
- if (!mr)
- continue;
rte_free(mr->key.actions);
rte_free(mr->action.mod.layout);
}