summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2023-08-11 09:53:42 -0400
committerDonald Sharp <sharpd@nvidia.com>2023-08-11 10:11:10 -0400
commit1e8ac95bfb757b85d02514dd0f708974cdc22899 (patch)
tree70bb000542680a8a0b0ccff01c723b92f333f62e
parent8ceb26240126dca3be65162b0c8aa9bad28a65f6 (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>
-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 35f2438929..3442eee1e1 100644
--- a/bgpd/bgp_evpn.c
+++ b/bgpd/bgp_evpn.c
@@ -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;
+ }
}
}
}