From ae74af996f5da3208ba4fb1daf05b75c8e1d58e2 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 24 Mar 2025 09:37:25 -0400 Subject: [PATCH] zebra: On shutdown call appropriate finish functions The vrf_terminate and route_map_finish functions are not being called and as such memory was being dropped on shutdown. Signed-off-by: Donald Sharp --- eigrpd/eigrp_interface.c | 2 -- eigrpd/eigrp_main.c | 1 + eigrpd/eigrpd.c | 3 ++- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eigrpd/eigrp_interface.c b/eigrpd/eigrp_interface.c index 73caa72b6d..8bf0e130b1 100644 --- a/eigrpd/eigrp_interface.c +++ b/eigrpd/eigrp_interface.c @@ -440,8 +440,6 @@ void eigrp_if_free(struct eigrp_interface *ei, int source) pe); eigrp_if_down(ei); - - eigrp_interface_hash_del(&ei->eigrp->eifs, ei); } /* Simulate down/up on the interface. This is needed, for example, when diff --git a/eigrpd/eigrp_main.c b/eigrpd/eigrp_main.c index 319ac92533..089e18439f 100644 --- a/eigrpd/eigrp_main.c +++ b/eigrpd/eigrp_main.c @@ -98,6 +98,7 @@ static void sigint(void) keychain_terminate(); + route_map_finish(); eigrp_terminate(); exit(0); diff --git a/eigrpd/eigrpd.c b/eigrpd/eigrpd.c index 981965f101..543a54da13 100644 --- a/eigrpd/eigrpd.c +++ b/eigrpd/eigrpd.c @@ -241,6 +241,7 @@ void eigrp_terminate(void) eigrp_zebra_stop(); + vrf_terminate(); frr_fini(); } @@ -263,7 +264,7 @@ void eigrp_finish_final(struct eigrp *eigrp) nbr = eigrp_nbr_hash_first(&ei->nbr_hash_head); eigrp_nbr_delete(nbr); } - eigrp_if_free(ei, INTERFACE_DOWN_BY_FINAL); + eigrp_if_delete_hook(ei->ifp); } EVENT_OFF(eigrp->t_write);