diff options
author | paul <paul> | 2003-02-18 23:26:37 +0000 |
---|---|---|
committer | paul <paul> | 2003-02-18 23:26:37 +0000 |
commit | cb3f37d276e2c803d806715dd2b1bda81075ca19 (patch) | |
tree | 6d0eb78905dcf552e84eb248799ce7977613a96c /ospfd | |
parent | 8c80cb7ee950b7f8c728539d965deae91e70a4eb (diff) |
1. ospf_opaque_type10_lsa_term (area) - was being called after
ospf_lsdb_free had been called. (efence caught this one).
This bug is present in zebra.org CVS
2. It fixes my previous ospf_network_match_iface patch ([zebra 17352])
- i lost a couple of checks in ospf_network_run() by mistake. this
patch isnt in zebra.org CVS, but it would be nice to have it once it
works.
This hopefully fixes the 'assert rn->info' problems people had with
zebra-pj yesterday.
Diffstat (limited to 'ospfd')
-rw-r--r-- | ospfd/ospfd.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index a1ad929d..20300676 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -472,14 +472,12 @@ ospf_area_free (struct ospf_area *area) ospf_lsa_discard_callback); foreach_lsa (OPAQUE_LINK_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback); + ospf_opaque_type10_lsa_term (area); #endif /* HAVE_OPAQUE_LSA */ ospf_lsdb_delete_all (area->lsdb); ospf_lsdb_free (area->lsdb); -#ifdef HAVE_OPAQUE_LSA - ospf_opaque_type10_lsa_term (area); -#endif /* HAVE_OPAQUE_LSA */ ospf_lsa_unlock (area->router_lsa_self); route_table_finish (area->ranges); @@ -722,8 +720,11 @@ ospf_network_run (struct ospf *ospf, struct prefix *p, struct ospf_area *area) else addr = co->address; - if (ospf_network_match_iface(co,p)) + if (p->family == co->address->family + && ! ospf_if_is_configured (&(addr->u.prefix4)) + && ospf_network_match_iface(co,p)) { + assert(co); struct ospf_interface *oi; oi = ospf_if_new (ifp, co->address); |