From: Gilad Arnold <gilad.arnold@terayon.com>
Subject: [zebra 19084] Re: suspected memory leakage upon static route
I believe this is a more complete patch, it also addresses
allocating/freeing of nexthop->ifname string buffer (1) using
XSTRDUP/XFREE macros (thus correctly updating memory statistics), and
(2) for all nexthop->type cases that carry an ifname string.
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index f3b9fd6..1c38190 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -187,8 +187,8 @@
void
nexthop_free (struct nexthop *nexthop)
{
- if (nexthop->type == NEXTHOP_TYPE_IFNAME && nexthop->ifname)
- free (nexthop->ifname);
+ if (nexthop->ifname)
+ XFREE (0, nexthop->ifname);
XFREE (MTYPE_NEXTHOP, nexthop);
}
@@ -215,7 +215,7 @@
nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
memset (nexthop, 0, sizeof (struct nexthop));
nexthop->type = NEXTHOP_TYPE_IFNAME;
- nexthop->ifname = strdup (ifname);
+ nexthop->ifname = XSTRDUP (0, ifname);
nexthop_add (rib, nexthop);