From 16d91fce151c16b81fa5554de9fec89dfc16ecae Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Sun, 27 Feb 2022 14:00:41 -0500 Subject: [PATCH] zebra: Prevent crash if ZEBRA_ROUTE_ALL is used for a route type FRR will crash when the re->type is a ZEBRA_ROUTE_ALL and it is inserted into the meta-queue. Let's just put some basic code in place to prevent a crash from happening. No routing protocol should be using ZEBRA_ROUTE_ALL as a value but bugs do happen. Let's just accept the weird route type gracefully and move on. Signed-off-by: Donald Sharp --- zebra/zebra_rib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index af159da3cc..e376d4b2af 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -116,6 +116,7 @@ static const struct { [ZEBRA_ROUTE_OPENFABRIC] = {ZEBRA_ROUTE_OPENFABRIC, 115, 5}, [ZEBRA_ROUTE_VRRP] = {ZEBRA_ROUTE_VRRP, 255, 7}, [ZEBRA_ROUTE_SRTE] = {ZEBRA_ROUTE_SRTE, 255, 7}, + [ZEBRA_ROUTE_ALL] = {ZEBRA_ROUTE_ALL, 255, 7}, /* Any new route type added to zebra, should be mirrored here */ /* no entry/default: 150 */ @@ -4386,9 +4387,8 @@ static void check_route_info(void) * ZEBRA_ROUTE_ALL is also ignored. */ for (int i = 0; i < len; i++) { - if (i == ZEBRA_ROUTE_SYSTEM || i == ZEBRA_ROUTE_ALL) - continue; - assert(route_info[i].key); + assert(route_info[i].key >= ZEBRA_ROUTE_SYSTEM && + route_info[i].key < ZEBRA_ROUTE_MAX); assert(route_info[i].meta_q_map < MQ_SIZE); } }