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: sta...@dpdk.org

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

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;
-- 
2.39.1

Reply via email to