* isis_lsp.c: Less TLV leaking.
diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index 67ef913..f2e0f51 100644
--- a/isisd/ChangeLog
+++ b/isisd/ChangeLog
@@ -1,5 +1,9 @@
2005-09-01 Hasso Tepper <hasso at quagga.net>
+ * isis_lsp.c: Less TLV leaking.
+
+2005-09-01 Hasso Tepper <hasso at quagga.net>
+
* random.c, spgrid.[ch]: Fix warnings with hope that I didn't broke
anything. These floats to longs and vice versa casts are starnge
indeed.
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index 52896c4..a425b34 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -1330,7 +1330,10 @@
if (router_id_zebra.s_addr != 0)
{
if (lsp->tlv_data.ipv4_addrs == NULL)
- lsp->tlv_data.ipv4_addrs = list_new ();
+ {
+ lsp->tlv_data.ipv4_addrs = list_new ();
+ lsp->tlv_data.ipv4_addrs->del = free_tlv;
+ }
routerid = XMALLOC (MTYPE_ISIS_TLV, sizeof (struct in_addr));
routerid->s_addr = router_id_zebra.s_addr;
@@ -1362,6 +1365,7 @@
if (tlv_data.ipv4_int_reachs == NULL)
{
tlv_data.ipv4_int_reachs = list_new ();
+ tlv_data.ipv4_int_reachs->del = free_tlv;
}
for (ALL_LIST_ELEMENTS (circuit->ip_addrs, ipnode, ipnnode, ipv4))
{
@@ -1386,6 +1390,7 @@
if (tlv_data.ipv6_reachs == NULL)
{
tlv_data.ipv6_reachs = list_new ();
+ tlv_data.ipv6_reachs->del = free_tlv;
}
for (ALL_LIST_ELEMENTS (circuit->ipv6_non_link, ipnode, ipnnode,
ipv6))
@@ -1413,6 +1418,7 @@
if (tlv_data.is_neighs == NULL)
{
tlv_data.is_neighs = list_new ();
+ tlv_data.is_neighs->del = free_tlv;
}
is_neigh = XCALLOC (MTYPE_ISIS_TLV, sizeof (struct is_neigh));
if (level == 1)