]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_routemap.c
zebra: Fix label manager memory leak (#5680)
[mirror_frr.git] / isisd / isis_routemap.c
index d63676256b3b87944789b9b3027951b14ddeeea9..902528e1bbc46366243b4942f1b3ad0435eed75f 100644 (file)
 #include "isis_zebra.h"
 #include "isis_routemap.h"
 
-static route_map_result_t route_match_ip_address(void *rule,
-                                                const struct prefix *prefix,
-                                                route_map_object_t type,
-                                                void *object)
+static enum route_map_cmd_result_t
+route_match_ip_address(void *rule, const struct prefix *prefix,
+                      route_map_object_t type, void *object)
 {
        struct access_list *alist;
 
@@ -75,13 +74,16 @@ static void route_match_ip_address_free(void *rule)
        XFREE(MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
-static struct route_map_rule_cmd route_match_ip_address_cmd = {
-       "ip address", route_match_ip_address, route_match_ip_address_compile,
-       route_match_ip_address_free};
+static const struct route_map_rule_cmd route_match_ip_address_cmd = {
+       "ip address",
+       route_match_ip_address,
+       route_match_ip_address_compile,
+       route_match_ip_address_free
+};
 
 /* ------------------------------------------------------------*/
 
-static route_map_result_t
+static enum route_map_cmd_result_t
 route_match_ip_address_prefix_list(void *rule, const struct prefix *prefix,
                                   route_map_object_t type, void *object)
 {
@@ -107,17 +109,19 @@ static void route_match_ip_address_prefix_list_free(void *rule)
        XFREE(MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
-struct route_map_rule_cmd route_match_ip_address_prefix_list_cmd = {
-       "ip address prefix-list", route_match_ip_address_prefix_list,
+static const struct route_map_rule_cmd
+               route_match_ip_address_prefix_list_cmd = {
+       "ip address prefix-list",
+       route_match_ip_address_prefix_list,
        route_match_ip_address_prefix_list_compile,
-       route_match_ip_address_prefix_list_free};
+       route_match_ip_address_prefix_list_free
+};
 
 /* ------------------------------------------------------------*/
 
-static route_map_result_t route_match_ipv6_address(void *rule,
-                                                  const struct prefix *prefix,
-                                                  route_map_object_t type,
-                                                  void *object)
+static enum route_map_cmd_result_t
+route_match_ipv6_address(void *rule, const struct prefix *prefix,
+                        route_map_object_t type, void *object)
 {
        struct access_list *alist;
 
@@ -141,13 +145,16 @@ static void route_match_ipv6_address_free(void *rule)
        XFREE(MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
-static struct route_map_rule_cmd route_match_ipv6_address_cmd = {
-       "ipv6 address", route_match_ipv6_address,
-       route_match_ipv6_address_compile, route_match_ipv6_address_free};
+static const struct route_map_rule_cmd route_match_ipv6_address_cmd = {
+       "ipv6 address",
+       route_match_ipv6_address,
+       route_match_ipv6_address_compile,
+       route_match_ipv6_address_free
+};
 
 /* ------------------------------------------------------------*/
 
-static route_map_result_t
+static enum route_map_cmd_result_t
 route_match_ipv6_address_prefix_list(void *rule, const struct prefix *prefix,
                                     route_map_object_t type, void *object)
 {
@@ -173,17 +180,19 @@ static void route_match_ipv6_address_prefix_list_free(void *rule)
        XFREE(MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
-struct route_map_rule_cmd route_match_ipv6_address_prefix_list_cmd = {
-       "ipv6 address prefix-list", route_match_ipv6_address_prefix_list,
+static const struct route_map_rule_cmd
+               route_match_ipv6_address_prefix_list_cmd = {
+       "ipv6 address prefix-list",
+       route_match_ipv6_address_prefix_list,
        route_match_ipv6_address_prefix_list_compile,
-       route_match_ipv6_address_prefix_list_free};
+       route_match_ipv6_address_prefix_list_free
+};
 
 /* ------------------------------------------------------------*/
 
-static route_map_result_t route_set_metric(void *rule,
-                                          const struct prefix *prefix,
-                                          route_map_object_t type,
-                                          void *object)
+static enum route_map_cmd_result_t
+route_set_metric(void *rule, const struct prefix *prefix,
+                route_map_object_t type, void *object)
 {
        uint32_t *metric;
        struct isis_ext_info *info;
@@ -218,9 +227,12 @@ static void route_set_metric_free(void *rule)
        XFREE(MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
-static struct route_map_rule_cmd route_set_metric_cmd = {
-       "metric", route_set_metric, route_set_metric_compile,
-       route_set_metric_free};
+static const struct route_map_rule_cmd route_set_metric_cmd = {
+       "metric",
+       route_set_metric,
+       route_set_metric_compile,
+       route_set_metric_free
+};
 
 void isis_route_map_init(void)
 {