diff options
Diffstat (limited to 'isisd')
-rw-r--r-- | isisd/ChangeLog | 4 | ||||
-rw-r--r-- | isisd/isis_lsp.c | 8 |
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) |