[v2,6/8] net/nfp: fix null pointer dereference

Message ID 20240314074024.3199555-7-chaoyong.he@corigine.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series fix some coverity issues |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Chaoyong He March 14, 2024, 7:40 a.m. UTC
  CI found there are null pointer dereference in 'nfp_flow_merge_l4()'.

Coverity issue: 414942
Fixes: 94438b093702 ("net/nfp: support TCP/UDP/SCTP flow items")
Cc: stable@dpdk.org

Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
 drivers/net/nfp/nfp_net_flow.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
  

Patch

diff --git a/drivers/net/nfp/nfp_net_flow.c b/drivers/net/nfp/nfp_net_flow.c
index 251974edb4..ea743eed73 100644
--- a/drivers/net/nfp/nfp_net_flow.c
+++ b/drivers/net/nfp/nfp_net_flow.c
@@ -349,12 +349,15 @@  nfp_flow_merge_l4(struct rte_flow *nfp_flow,
 
 		ipv4->src_port = rte_be_to_cpu_16(spec->hdr.src_port);
 		ipv4->dst_port = rte_be_to_cpu_16(spec->hdr.dst_port);
-	} else {
+	} else if (ipv6 != NULL) {
 		ipv6->src_port_mask = rte_be_to_cpu_16(mask->hdr.src_port);
 		ipv6->dst_port_mask = rte_be_to_cpu_16(mask->hdr.dst_port);
 
 		ipv6->src_port = rte_be_to_cpu_16(spec->hdr.src_port);
 		ipv6->dst_port = rte_be_to_cpu_16(spec->hdr.dst_port);
+	} else {
+		PMD_DRV_LOG(ERR, "No valid L3 layer pointer.");
+		return -EINVAL;
 	}
 
 	return 0;