From 6233f087385b876557dc83ef16e10159d647a3bd Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 Mar 2017 20:07:08 -0400 Subject: [PATCH] pimd: Fix connected data structure not being freed Signed-off-by: Donald Sharp --- pimd/pim_zebra.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c index 3ff0d38185..727bceff5b 100644 --- a/pimd/pim_zebra.c +++ b/pimd/pim_zebra.c @@ -338,26 +338,27 @@ static int pim_zebra_if_address_del(int command, struct zclient *client, return 0; p = c->address; - if (p->family != AF_INET) - return 0; - - if (PIM_DEBUG_ZEBRA) { - char buf[BUFSIZ]; - prefix2str(p, buf, BUFSIZ); - zlog_debug("%s: %s disconnected IP address %s flags %u %s", - __PRETTY_FUNCTION__, - c->ifp->name, buf, c->flags, - CHECK_FLAG(c->flags, ZEBRA_IFA_SECONDARY) ? "secondary" : "primary"); - -#ifdef PIM_DEBUG_IFADDR_DUMP - dump_if_address(c->ifp); -#endif - } + if (p->family == AF_INET) + { + if (PIM_DEBUG_ZEBRA) { + char buf[BUFSIZ]; + prefix2str(p, buf, BUFSIZ); + zlog_debug("%s: %s disconnected IP address %s flags %u %s", + __PRETTY_FUNCTION__, + c->ifp->name, buf, c->flags, + CHECK_FLAG(c->flags, ZEBRA_IFA_SECONDARY) ? "secondary" : "primary"); - pim_if_addr_del(c, 0); - pim_rp_setup(); - pim_i_am_rp_re_evaluate(); - +#ifdef PIM_DEBUG_IFADDR_DUMP + dump_if_address(c->ifp); +#endif + } + + pim_if_addr_del(c, 0); + pim_rp_setup(); + pim_i_am_rp_re_evaluate(); + } + + connected_free (c); return 0; }