]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: On shutdown call appropriate finish functions
authorDonald Sharp <sharpd@nvidia.com>
Mon, 24 Mar 2025 13:37:25 +0000 (09:37 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 24 Mar 2025 15:36:13 +0000 (11:36 -0400)
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 <sharpd@nvidia.com>
eigrpd/eigrp_interface.c
eigrpd/eigrp_main.c
eigrpd/eigrpd.c

index 73caa72b6d6fbfeb9881f9aae975ffac4a027a94..8bf0e130b1b3de4bf22df5201d76f779e2727347 100644 (file)
@@ -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
index 319ac925337be7dc7fff635f5d0ace0981ec0300..089e18439f8423e8dbe557b2493e10813b1bdf9e 100644 (file)
@@ -98,6 +98,7 @@ static void sigint(void)
 
        keychain_terminate();
 
+       route_map_finish();
        eigrp_terminate();
 
        exit(0);
index 981965f101b17c063ab8fd65dfd7ad0764585ad4..543a54da13d2a67d51a1a5eac739d8047a1c6576 100644 (file)
@@ -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);