diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2015-05-20 03:04:21 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2015-05-20 03:04:21 +0200 |
commit | 98a4a44edcd6833b6e62a369fcd053e64174e264 (patch) | |
tree | a5ef1a4509f6dc6bdf85568ce137dd730b81dc6d /bgpd | |
parent | If a route-map is used on a neighbor default-originate statement we need to d... (diff) | |
download | frr-98a4a44edcd6833b6e62a369fcd053e64174e264.tar.xz frr-98a4a44edcd6833b6e62a369fcd053e64174e264.zip |
An undefined route-map should deny everything
Diffstat (limited to 'bgpd')
-rw-r--r-- | bgpd/bgp_route.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index be35c9c1f..5aa9e6da4 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -943,11 +943,19 @@ bgp_input_modifier (struct peer *peer, struct prefix *p, struct attr *attr, if (rmap_name) { rmap = route_map_lookup_by_name(rmap_name); + + if (rmap == NULL) + return RMAP_DENY; } else { if (ROUTE_MAP_IN_NAME(filter)) - rmap = ROUTE_MAP_IN (filter); + { + rmap = ROUTE_MAP_IN (filter); + + if (rmap == NULL) + return RMAP_DENY; + } } /* Route map apply. */ @@ -992,11 +1000,19 @@ bgp_output_modifier (struct peer *peer, struct prefix *p, struct attr *attr, if (rmap_name) { rmap = route_map_lookup_by_name(rmap_name); + + if (rmap == NULL) + return RMAP_DENY; } else { if (ROUTE_MAP_OUT_NAME(filter)) - rmap = ROUTE_MAP_OUT (filter); + { + rmap = ROUTE_MAP_OUT (filter); + + if (rmap == NULL) + return RMAP_DENY; + } } /* Route map apply. */ |