]> git.puffer.fish Git - mirror/frr.git/commitdiff
Merge pull request #7524 from donaldsharp/zebra_route_map_tighten
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Thu, 10 Dec 2020 09:01:25 +0000 (11:01 +0200)
committerGitHub <noreply@github.com>
Thu, 10 Dec 2020 09:01:25 +0000 (11:01 +0200)
zebra: deny when route map is specified but does not exist yet

1  2 
zebra/zebra_routemap.c

index 7b0a1e3d9c59c76245160f553141f7415be67029,862b1a0c6329791b674a0ccca38a27eb89020036..0ce724f6080a4213f0d9f47df93f1f3ca9863584
@@@ -1692,12 -1734,22 +1693,22 @@@ zebra_route_map_check(int family, int r
        nh_obj.metric = 0;
        nh_obj.tag = tag;
  
-       if (rib_type >= 0 && rib_type < ZEBRA_ROUTE_MAX)
+       if (rib_type >= 0 && rib_type < ZEBRA_ROUTE_MAX) {
+               rm_name = PROTO_RM_NAME(zvrf, family, rib_type);
                rmap = PROTO_RM_MAP(zvrf, family, rib_type);
-       if (!rmap && PROTO_RM_NAME(zvrf, family, ZEBRA_ROUTE_MAX))
+               if (rm_name && !rmap)
+                       return RMAP_DENYMATCH;
+       }
+       if (!rmap) {
+               rm_name = PROTO_RM_NAME(zvrf, family, ZEBRA_ROUTE_MAX);
                rmap = PROTO_RM_MAP(zvrf, family, ZEBRA_ROUTE_MAX);
+               if (rm_name && !rmap)
+                       return RMAP_DENYMATCH;
+       }
        if (rmap) {
 -              ret = route_map_apply(rmap, p, RMAP_ZEBRA, &nh_obj);
 +              ret = route_map_apply(rmap, p, &nh_obj);
        }
  
        return (ret);