From: Donald Sharp Date: Fri, 17 Mar 2017 00:07:08 +0000 (-0400) Subject: pimd: Fix connected data structure not being freed X-Git-Tag: frr-3.1-dev~30^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=6233f087385b876557dc83ef16e10159d647a3bd;p=mirror%2Ffrr.git pimd: Fix connected data structure not being freed Signed-off-by: Donald Sharp --- 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"); - + 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"); + #ifdef PIM_DEBUG_IFADDR_DUMP - dump_if_address(c->ifp); + dump_if_address(c->ifp); #endif - } + } - pim_if_addr_del(c, 0); - pim_rp_setup(); - pim_i_am_rp_re_evaluate(); - + pim_if_addr_del(c, 0); + pim_rp_setup(); + pim_i_am_rp_re_evaluate(); + } + + connected_free (c); return 0; }