]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: Cleanup some small memory leaks on exit
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 16 Jul 2020 12:13:21 +0000 (08:13 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 16 Jul 2020 12:13:21 +0000 (08:13 -0400)
We were not properly cleaning up some memory in the pim mlag
subsystem.  Clean it up on exit.

Signed-off-by: Donald Sharp <sharpc@cumulusnetworks.com>
pimd/pim_mlag.c
pimd/pim_mlag.h
pimd/pimd.c

index 305dd5cf2c0233e39cadb722db19935d61c489c9..2dfc0af1de0dbce1151fa70619db9d83845a0137 100644 (file)
@@ -1082,6 +1082,14 @@ void pim_instance_mlag_terminate(struct pim_instance *pim)
        pim->inst_mlag_intf_cnt = 0;
 }
 
+void pim_mlag_terminate(void)
+{
+       stream_free(router->mlag_stream);
+       router->mlag_stream = NULL;
+       stream_fifo_free(router->mlag_fifo);
+       router->mlag_fifo = NULL;
+}
+
 void pim_mlag_init(void)
 {
        pim_mlag_param_reset();
index eb316695f76a6f937428908e407677cd2ca06f96..b044c31c444f73a9ab685f68c6bd8a73efdeec18 100644 (file)
@@ -28,6 +28,7 @@
 #include "pim_iface.h"
 
 extern void pim_mlag_init(void);
+extern void pim_mlag_terminate(void);
 extern void pim_instance_mlag_init(struct pim_instance *pim);
 extern void pim_instance_mlag_terminate(struct pim_instance *pim);
 extern void pim_if_configure_mlag_dualactive(struct pim_interface *pim_ifp);
index 5ccbac32f2fb33837a7e4564b4b7f2cd7f160857..6c354a3cc8d45166db9352c11167e106331638f7 100644 (file)
@@ -42,6 +42,7 @@
 #include "pim_vxlan.h"
 #include "pim_zlookup.h"
 #include "pim_zebra.h"
+#include "pim_mlag.h"
 
 const char *const PIM_ALL_SYSTEMS = MCAST_ALL_SYSTEMS;
 const char *const PIM_ALL_ROUTERS = MCAST_ALL_ROUTERS;
@@ -109,6 +110,7 @@ void pim_router_init(void)
 
 void pim_router_terminate(void)
 {
+       pim_mlag_terminate();
        XFREE(MTYPE_ROUTER, router);
 }