pimd: Fix connected data structure not being freed

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-03-16 20:07:08 -04:00
parent b616d3a9c7
commit 6233f08738

View File

@ -338,26 +338,27 @@ static int pim_zebra_if_address_del(int command, struct zclient *client,
return 0; return 0;
p = c->address; p = c->address;
if (p->family != AF_INET) if (p->family == AF_INET)
return 0; {
if (PIM_DEBUG_ZEBRA) {
if (PIM_DEBUG_ZEBRA) { char buf[BUFSIZ];
char buf[BUFSIZ]; prefix2str(p, buf, BUFSIZ);
prefix2str(p, buf, BUFSIZ); zlog_debug("%s: %s disconnected IP address %s flags %u %s",
zlog_debug("%s: %s disconnected IP address %s flags %u %s", __PRETTY_FUNCTION__,
__PRETTY_FUNCTION__, c->ifp->name, buf, c->flags,
c->ifp->name, buf, c->flags, CHECK_FLAG(c->flags, ZEBRA_IFA_SECONDARY) ? "secondary" : "primary");
CHECK_FLAG(c->flags, ZEBRA_IFA_SECONDARY) ? "secondary" : "primary");
#ifdef PIM_DEBUG_IFADDR_DUMP #ifdef PIM_DEBUG_IFADDR_DUMP
dump_if_address(c->ifp); dump_if_address(c->ifp);
#endif #endif
} }
pim_if_addr_del(c, 0); pim_if_addr_del(c, 0);
pim_rp_setup(); pim_rp_setup();
pim_i_am_rp_re_evaluate(); pim_i_am_rp_re_evaluate();
}
connected_free (c);
return 0; return 0;
} }