rib: default distance value for new protocols (v2)

adding protocols and forgetting to update zebra_rib.c currently causes
a beyond end of array access for the default distance value. fix by
making 150 the default distance for unknown routing protocols.

150 is higher than all other IGPs but lower than iBGP (200)
This commit is contained in:
David Lamparter 2009-08-27 00:28:28 +02:00 committed by Denis Ovsienko
parent ca9f342c2c
commit 7052f22880

View File

@ -67,6 +67,7 @@ static const struct
{ZEBRA_ROUTE_OSPF6, 110},
{ZEBRA_ROUTE_ISIS, 115},
{ZEBRA_ROUTE_BGP, 20 /* IBGP is 200. */}
/* no entry/default: 150 */
};
/* Vector for routing table. */
@ -1511,7 +1512,10 @@ rib_add_ipv4 (int type, int flags, struct prefix_ipv4 *p,
/* Set default distance by route type. */
if (distance == 0)
{
distance = route_info[type].distance;
if ((unsigned)type >= sizeof(route_info) / sizeof(route_info[0]))
distance = 150;
else
distance = route_info[type].distance;
/* iBGP distance is 200. */
if (type == ZEBRA_ROUTE_BGP && CHECK_FLAG (flags, ZEBRA_FLAG_IBGP))