zclient_stop(), which is used as antagonist to zclient_init(), needs to
undo the vrf_bitmap allocation. Otherwise zclient_init() will leak the
allocated memory, for example when zclient_reset() is used.
Reported-by: Lou Berger <lberger@labn.net>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
void
zclient_stop (struct zclient *zclient)
{
+ afi_t afi;
+ int i;
+
if (zclient_debug)
zlog_debug ("zclient stopped");
zclient->sock = -1;
}
zclient->fail = 0;
+
+ for (afi = AFI_IP; afi < AFI_MAX; afi++)
+ for (i = 0; i < ZEBRA_ROUTE_MAX; i++)
+ {
+ vrf_bitmap_free(zclient->redist[afi][i]);
+ zclient->redist[afi][i] = VRF_BITMAP_NULL;
+ }
+ vrf_bitmap_free(zclient->default_information);
+ zclient->default_information = VRF_BITMAP_NULL;
}
void