[dpdk-dev] [PATCH] lpm: fix overflow issue

Igor Ryzhov iryzhov at nfware.com
Fri Feb 20 14:16:46 CET 2015


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 <iryzhov at nfware.com>
---
 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 983e04b..cc51210 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;
-- 
1.9.3 (Apple Git-50)



More information about the dev mailing list