]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: evpn code was not properly unlocking rd_dest 14182/head
authorDonald Sharp <sharpd@nvidia.com>
Fri, 11 Aug 2023 13:53:42 +0000 (09:53 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Fri, 11 Aug 2023 14:11:10 +0000 (10:11 -0400)
Found some code where bgp was not unlocking the dest
and rd_dest when walking the tree attempting to
find something to install.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgp_evpn.c

index 35f2438929caeed4689dc019d405eefa64565837..3442eee1e19a8f20f0e83bb770165b41b93dae5b 100644 (file)
@@ -3757,8 +3757,11 @@ static int install_uninstall_routes_for_vrf(struct bgp *bgp_vrf, int install)
                             pi = pi->next) {
                                ret = bgp_evpn_route_entry_install_if_vrf_match(
                                        bgp_vrf, pi, install);
-                               if (ret)
+                               if (ret) {
+                                       bgp_dest_unlock_node(rd_dest);
+                                       bgp_dest_unlock_node(dest);
                                        return ret;
+                               }
                        }
                }
        }