From be7d65d976f3e6f9d24b0e77064444ae69b74e1d Mon Sep 17 00:00:00 2001 From: hasso Date: Fri, 2 Sep 2005 01:38:16 +0000 Subject: * isis_lsp.c: Less TLV leaking. --- isisd/ChangeLog | 4 ++++ isisd/isis_lsp.c | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'isisd') diff --git a/isisd/ChangeLog b/isisd/ChangeLog index 67ef9139..f2e0f51a 100644 --- a/isisd/ChangeLog +++ b/isisd/ChangeLog @@ -1,3 +1,7 @@ +2005-09-01 Hasso Tepper + + * isis_lsp.c: Less TLV leaking. + 2005-09-01 Hasso Tepper * random.c, spgrid.[ch]: Fix warnings with hope that I didn't broke 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) -- cgit v1.2.1