From: Igor Ryzhov Date: Fri, 20 Feb 2015 13:16:46 +0000 (+0300) Subject: lpm: fix overflow issue X-Git-Tag: spdx-start~9602 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=e128e53879c71215c0293f8c7a7a8f0f173487c1;hp=dc783e74cf70c95084e71442ba09b212dded3757;p=dpdk.git 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 --- 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;