]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Don't forget bgp_dest_unlock_node for bgp_static_set() 9027/head
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Sun, 11 Jul 2021 20:39:53 +0000 (23:39 +0300)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Sun, 11 Jul 2021 20:39:53 +0000 (23:39 +0300)
Before returning an error, unlock bgp dest which is locked by
bgp_node_lookup().

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
bgpd/bgp_route.c

index 107aa1eb12e93d5adfb023dbf87c685b2cde64eb..bd45314350aaf71f41ea4d4d6800e76e38fa43b0 100644 (file)
@@ -6052,6 +6052,7 @@ int bgp_static_set(struct bgp *bgp, const char *negate, struct prefix *pfx,
                    && (label_index != bgp_static->label_index)) {
                        snprintf(errmsg, errmsg_len,
                                 "label-index doesn't match static route\n");
+                       bgp_dest_unlock_node(dest);
                        return -1;
                }
 
@@ -6059,6 +6060,7 @@ int bgp_static_set(struct bgp *bgp, const char *negate, struct prefix *pfx,
                    && strcmp(rmap, bgp_static->rmap.name)) {
                        snprintf(errmsg, errmsg_len,
                                 "route-map name doesn't match static route\n");
+                       bgp_dest_unlock_node(dest);
                        return -1;
                }