summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_evpn.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2023-08-11 15:53:42 +0200
committerDonald Sharp <sharpd@nvidia.com>2023-08-11 16:11:10 +0200
commit1e8ac95bfb757b85d02514dd0f708974cdc22899 (patch)
tree70bb000542680a8a0b0ccff01c723b92f333f62e /bgpd/bgp_evpn.c
parentMerge pull request #14171 from mjstapp/fix_bgp_lblpool_indent (diff)
downloadfrr-1e8ac95bfb757b85d02514dd0f708974cdc22899.tar.xz
frr-1e8ac95bfb757b85d02514dd0f708974cdc22899.zip
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>
Diffstat (limited to 'bgpd/bgp_evpn.c')
-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 35f243892..3442eee1e 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;
+ }
}
}
}