diff options
Diffstat (limited to 'ospfd/ospf_asbr.c')
-rw-r--r-- | ospfd/ospf_asbr.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ospfd/ospf_asbr.c b/ospfd/ospf_asbr.c index a4826237..9d2aedb2 100644 --- a/ospfd/ospf_asbr.c +++ b/ospfd/ospf_asbr.c @@ -104,8 +104,7 @@ ospf_external_info_new (u_char type) struct external_info *new; new = (struct external_info *) - XMALLOC (MTYPE_OSPF_EXTERNAL_INFO, sizeof (struct external_info)); - memset (new, 0, sizeof (struct external_info)); + XCALLOC (MTYPE_OSPF_EXTERNAL_INFO, sizeof (struct external_info)); new->type = type; ospf_reset_route_map_set_values (&new->route_map_set); @@ -286,6 +285,9 @@ ospf_redistribute_withdraw (struct ospf *ospf, u_char type) continue; ospf_external_lsa_flush (ospf, type, &ei->p, ei->ifindex /*, ei->nexthop */); - ospf_external_info_delete (type, ei->p); + + ospf_external_info_free (ei); + route_unlock_node (rn); + rn->info = NULL; } } |