From f7c65aec0abbf86ca8b5bd1a1eee579a173fcc9a Mon Sep 17 00:00:00 2001 From: Quentin Young Date: Tue, 14 Jan 2020 13:55:55 -0500 Subject: [PATCH] zebra: bfd message handling cleanup foo Previous patches introduced various issues: - Removal of stream_free() to fix double free caused memleak - Patch for memleak was incomplete This should fix it hopefully. Signed-off-by: Quentin Young --- zebra/zebra_ptm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/zebra/zebra_ptm.c b/zebra/zebra_ptm.c index 757623a04e..d7bbe779bd 100644 --- a/zebra/zebra_ptm.c +++ b/zebra/zebra_ptm.c @@ -1295,6 +1295,7 @@ static void zebra_ptm_send_bfdd(struct stream *msg) } stream_free(msgc); + stream_free(msg); } static void zebra_ptm_send_clients(struct stream *msg) @@ -1326,6 +1327,7 @@ static void zebra_ptm_send_clients(struct stream *msg) } stream_free(msgc); + stream_free(msg); } static int _zebra_ptm_bfd_client_deregister(struct zserv *zs) @@ -1367,8 +1369,6 @@ static int _zebra_ptm_bfd_client_deregister(struct zserv *zs) zebra_ptm_send_bfdd(msg); - stream_free(msg); - pp_free(pp); return 0; @@ -1423,6 +1423,7 @@ static void _zebra_ptm_reroute(struct zserv *zs, struct zebra_vrf *zvrf, stream_putw_at(msgc, 0, STREAM_READABLE(msgc)); zebra_ptm_send_bfdd(msgc); + msgc = NULL; /* Registrate process PID for shutdown hook. */ STREAM_GETL(msg, ppid); @@ -1431,7 +1432,8 @@ static void _zebra_ptm_reroute(struct zserv *zs, struct zebra_vrf *zvrf, return; stream_failure: - stream_free(msgc); + if (msgc) + stream_free(msgc); zlog_err("%s:%d failed to registrate client pid", __FILE__, __LINE__); } -- 2.39.5