summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2023-08-11 09:53:42 -0400
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2023-08-12 00:53:41 +0000
commit7b7c5e5e3defcffa6c5e8dafa2657d0bca2adfcc (patch)
tree91d551643e1974fd6c96ed62c334b9de2ba1c849
parent11d0164a0e4e92ef52e9219cf7d8d3b19331a0d2 (diff)
bgpd: evpn code was not properly unlocking rd_dest
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> (cherry picked from commit 1e8ac95bfb757b85d02514dd0f708974cdc22899)
-rw-r--r--bgpd/bgp_evpn.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c
index 16b7dc3f4e..5bfef67785 100644
--- a/bgpd/bgp_evpn.c
+++ b/bgpd/bgp_evpn.c
@@ -3104,8 +3104,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;
+ }
}
}
}