summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--isisd/ChangeLog4
-rw-r--r--isisd/isis_lsp.c8
2 files changed, 11 insertions, 1 deletions
diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index 67ef9139..f2e0f51a 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 52896c4e..a425b341 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -1330,7 +1330,10 @@ lsp_build_nonpseudo (struct isis_lsp *lsp, struct isis_area *area)
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 @@ lsp_build_nonpseudo (struct isis_lsp *lsp, struct isis_area *area)
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 @@ lsp_build_nonpseudo (struct isis_lsp *lsp, struct isis_area *area)
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 @@ lsp_build_nonpseudo (struct isis_lsp *lsp, struct isis_area *area)
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)