From 244a996f0149c2c3ae82e0bc6cc2abc4eb87656b Mon Sep 17 00:00:00 2001 From: Gowrishankar Muthukrishnan Date: Sat, 12 Feb 2022 18:08:20 +0530 Subject: [PATCH] common/cnxk: fix uninitialized pointer read Fix uninitialized pointer read reported in coverity scan. Coverity issue: 370214, 370217, 370219, 370220, 370221 Coverity issue: 370223, 370224, 370225, 372065 Fixes: c34ea71b878d ("common/cnxk: add NPC parsing API") Cc: stable@dpdk.org Signed-off-by: Gowrishankar Muthukrishnan Acked-by: Jerin Jacob --- drivers/common/cnxk/roc_npc_parse.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/common/cnxk/roc_npc_parse.c b/drivers/common/cnxk/roc_npc_parse.c index 302ab66efc..b849326a19 100644 --- a/drivers/common/cnxk/roc_npc_parse.c +++ b/drivers/common/cnxk/roc_npc_parse.c @@ -112,6 +112,7 @@ npc_parse_cpt_hdr(struct npc_parse_state *pst) info.hw_hdr_len = 0; /* Prepare for parsing the item */ + info.def_mask = NULL; info.hw_mask = &hw_mask; info.len = pst->pattern->size; npc_get_hw_supp_mask(pst, &info, lid, lt); @@ -149,6 +150,7 @@ npc_parse_higig2_hdr(struct npc_parse_state *pst) } /* Prepare for parsing the item */ + info.def_mask = NULL; info.hw_mask = &hw_mask; info.len = pst->pattern->size; npc_get_hw_supp_mask(pst, &info, lid, lt); @@ -198,6 +200,7 @@ npc_parse_la(struct npc_parse_state *pst) } /* Prepare for parsing the item */ + info.def_mask = NULL; info.hw_mask = &hw_mask; info.len = sizeof(eth_item->hdr); npc_get_hw_supp_mask(pst, &info, lid, lt); @@ -236,6 +239,7 @@ npc_parse_lb(struct npc_parse_state *pst) int nr_vlans = 0; int rc; + info.def_mask = NULL; info.spec = NULL; info.mask = NULL; info.def_mask = NULL; @@ -396,12 +400,12 @@ npc_parse_mpls_label_stack(struct npc_parse_state *pst, int *flag) * pst->pattern points to first MPLS label. We only check * that subsequent labels do not have anything to match. */ + info.def_mask = NULL; info.hw_mask = NULL; info.len = pattern->size; info.spec = NULL; info.mask = NULL; info.hw_hdr_len = 0; - info.def_mask = NULL; while (pattern->type == ROC_NPC_ITEM_TYPE_MPLS) { nr_labels++; @@ -447,6 +451,7 @@ npc_parse_mpls(struct npc_parse_state *pst, int lid) info.len = pst->pattern->size; info.spec = NULL; info.mask = NULL; + info.def_mask = NULL; info.hw_hdr_len = 0; npc_get_hw_supp_mask(pst, &info, lid, lt); @@ -547,6 +552,7 @@ npc_parse_lc(struct npc_parse_state *pst) if (pst->pattern->type == ROC_NPC_ITEM_TYPE_MPLS) return npc_parse_mpls(pst, NPC_LID_LC); + info.def_mask = NULL; info.hw_mask = &hw_mask; info.spec = NULL; info.mask = NULL; @@ -640,10 +646,10 @@ npc_parse_ld(struct npc_parse_state *pst) return npc_parse_mpls(pst, NPC_LID_LD); return 0; } + info.def_mask = NULL; info.hw_mask = &hw_mask; info.spec = NULL; info.mask = NULL; - info.def_mask = NULL; info.len = 0; info.hw_hdr_len = 0; @@ -799,6 +805,7 @@ npc_parse_lf(struct npc_parse_state *pst) lflags = 0; /* No match support for vlan tags */ + info.def_mask = NULL; info.hw_mask = NULL; info.len = pst->pattern->size; info.spec = NULL; @@ -857,6 +864,7 @@ npc_parse_lg(struct npc_parse_state *pst) if (!pst->tunnel) return 0; + info.def_mask = NULL; info.hw_mask = &hw_mask; info.spec = NULL; info.mask = NULL; @@ -893,6 +901,7 @@ npc_parse_lh(struct npc_parse_state *pst) if (!pst->tunnel) return 0; + info.def_mask = NULL; info.hw_mask = &hw_mask; info.spec = NULL; info.mask = NULL; -- 2.20.1