[dpdk-dev] lpm6: fix assigned value is garbage or undefined

Message ID 1461769673-65483-1-git-send-email-danielx.t.mrzyglod@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Daniel Mrzyglod April 27, 2016, 3:07 p.m. UTC
  Fix issue reported by clang scan-build

Value of pointer tbl_next was uninitialized. When function lookup_step()
take else branch it may provide garbage into tbl = tbl_next;

Fixes: 5c510e13a9cb ("lpm: add IPv6 support")

Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
---
 lib/librte_lpm/rte_lpm6.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Thomas Monjalon May 2, 2016, 1:10 p.m. UTC | #1
2016-04-27 17:07, Daniel Mrzyglod:
> Fix issue reported by clang scan-build
> 
> Value of pointer tbl_next was uninitialized. When function lookup_step()
> take else branch it may provide garbage into tbl = tbl_next;
> 
> Fixes: 5c510e13a9cb ("lpm: add IPv6 support")
> 
> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/librte_lpm/rte_lpm6.c b/lib/librte_lpm/rte_lpm6.c
index ba4353c..32fdba0 100644
--- a/lib/librte_lpm/rte_lpm6.c
+++ b/lib/librte_lpm/rte_lpm6.c
@@ -601,7 +601,7 @@  int
 rte_lpm6_lookup(const struct rte_lpm6 *lpm, uint8_t *ip, uint8_t *next_hop)
 {
 	const struct rte_lpm6_tbl_entry *tbl;
-	const struct rte_lpm6_tbl_entry *tbl_next;
+	const struct rte_lpm6_tbl_entry *tbl_next = NULL;
 	int status;
 	uint8_t first_byte;
 	uint32_t tbl24_index;
@@ -636,7 +636,7 @@  rte_lpm6_lookup_bulk_func(const struct rte_lpm6 *lpm,
 {
 	unsigned i;
 	const struct rte_lpm6_tbl_entry *tbl;
-	const struct rte_lpm6_tbl_entry *tbl_next;
+	const struct rte_lpm6_tbl_entry *tbl_next = NULL;
 	uint32_t tbl24_index;
 	uint8_t first_byte, next_hop;
 	int status;