summaryrefslogtreecommitdiffstats
path: root/bgpd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 03:04:21 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 03:04:21 +0200
commit98a4a44edcd6833b6e62a369fcd053e64174e264 (patch)
treea5ef1a4509f6dc6bdf85568ce137dd730b81dc6d /bgpd
parentIf a route-map is used on a neighbor default-originate statement we need to d... (diff)
downloadfrr-98a4a44edcd6833b6e62a369fcd053e64174e264.tar.xz
frr-98a4a44edcd6833b6e62a369fcd053e64174e264.zip
An undefined route-map should deny everything
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_route.c20
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. */