]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: Strip `delete` keyword when looking up for lcommunities
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Thu, 18 Jul 2019 12:29:20 +0000 (15:29 +0300)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Mon, 5 Aug 2019 23:58:04 +0000 (02:58 +0300)
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
bgpd/bgp_routemap.c

index 4467210603c42544fae68a83cdccbcd895908764..2e274124905042f1ccbcaf2c47d88453341c08a5 100644 (file)
@@ -2037,12 +2037,19 @@ static route_map_result_t route_set_lcommunity_delete(void *rule,
 static void *route_set_lcommunity_delete_compile(const char *arg)
 {
        struct rmap_community *rcom;
+       char **splits;
+       int num;
 
-       rcom = XCALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(struct rmap_community));
+       frrstr_split(arg, " ", &splits, &num);
 
-       rcom->name = XSTRDUP(MTYPE_ROUTE_MAP_COMPILED, arg);
+       rcom = XCALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(struct rmap_community));
+       rcom->name = XSTRDUP(MTYPE_ROUTE_MAP_COMPILED, splits[0]);
        rcom->name_hash = bgp_clist_hash_key(rcom->name);
 
+       for (int i = 0; i < num; i++)
+               XFREE(MTYPE_TMP, splits[i]);
+       XFREE(MTYPE_TMP, splits);
+
        return rcom;
 }