summaryrefslogtreecommitdiff
path: root/zebra/interface.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2023-08-16 11:35:24 +0300
committerGitHub <noreply@github.com>2023-08-16 11:35:24 +0300
commit83a2d5ba69687ca6f8842fec5ec702338253a84f (patch)
tree953b25dc15a7d36483d746b864214cefede8b53c /zebra/interface.c
parent515585ae9f3cdce60cbd1caa6c9a05095cde796e (diff)
parent391f7e6c6720b7e82c82d429f17931b71fe95f51 (diff)
Merge pull request #13623 from Keelan10/zebra-leak-fix
zebra: Delete the 'mbr_zifs' list in the if_zebra_delete_hook function
Diffstat (limited to 'zebra/interface.c')
-rw-r--r--zebra/interface.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index ab2b7d2446..10839e2106 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -200,6 +200,7 @@ static void if_nhg_dependents_release(const struct interface *ifp)
static int if_zebra_delete_hook(struct interface *ifp)
{
struct zebra_if *zebra_if;
+ struct zebra_l2info_bond *bond;
if (ifp->info) {
zebra_if = ifp->info;
@@ -217,6 +218,10 @@ static int if_zebra_delete_hook(struct interface *ifp)
rtadv_if_fini(zebra_if);
+ bond = &zebra_if->bond_info;
+ if (bond && bond->mbr_zifs)
+ list_delete(&bond->mbr_zifs);
+
zebra_l2_bridge_if_cleanup(ifp);
zebra_evpn_if_cleanup(zebra_if);
zebra_evpn_mac_ifp_del(ifp);