[prev in list] [next in list] [prev in thread] [next in thread]
List: quagga-dev
Subject: [quagga-dev 14686] [PATCH 1/3] lib: fix vrf_bitmap leak in zclient_free()
From: David Lamparter <equinox () opensourcerouting ! org>
Date: 2016-02-16 18:50:14
Message-ID: 1455648616-195347-2-git-send-email-equinox () opensourcerouting ! org
[Download RAW message or body]
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>
---
lib/zclient.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/lib/zclient.c b/lib/zclient.c
index ca6a4c7..f25aac1 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -112,6 +112,8 @@ zclient_init (struct zclient *zclient, int redist_default)
void
zclient_stop (struct zclient *zclient)
{
+ int i;
+
if (zclient_debug)
zlog_debug ("zclient stopped");
@@ -134,6 +136,14 @@ zclient_stop (struct zclient *zclient)
zclient->sock = -1;
}
zclient->fail = 0;
+
+ for (i = 0; i < ZEBRA_ROUTE_MAX; i++)
+ {
+ vrf_bitmap_free(zclient->redist[i]);
+ zclient->redist[i] = VRF_BITMAP_NULL;
+ }
+ vrf_bitmap_free(zclient->default_information);
+ zclient->default_information = VRF_BITMAP_NULL;
}
void
--
2.3.6
_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic