From e128e53879c71215c0293f8c7a7a8f0f173487c1 Mon Sep 17 00:00:00 2001 From: Igor Ryzhov Date: Fri, 20 Feb 2015 16:16:46 +0300 Subject: [PATCH] lpm: fix overflow issue LPM table overflow may occur if table is full and added rule has the biggest depth that already have some rules. Signed-off-by: Igor Ryzhov Acked-by: Bruce Richardson --- lib/librte_lpm/rte_lpm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index 983e04b159..cc51210c43 100644 --- a/lib/librte_lpm/rte_lpm.c +++ b/lib/librte_lpm/rte_lpm.c @@ -298,6 +298,9 @@ rule_add(struct rte_lpm *lpm, uint32_t ip_masked, uint8_t depth, return rule_index; } } + + if (rule_index == lpm->max_rules) + return -ENOSPC; } else { /* Calculate the position in which the rule will be stored. */ rule_index = 0; -- 2.20.1