diff options
Diffstat (limited to 'ospfd')
-rw-r--r-- | ospfd/ChangeLog | 5 | ||||
-rw-r--r-- | ospfd/ospf_ism.c | 19 |
2 files changed, 13 insertions, 11 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 82e745ca..c9bdff65 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -16,6 +16,11 @@ * ospf_ia.c: (ospf_update_router_route) ospf->backbone could be NULL when passed to ospf_find_asbr_route_through_area, check for NULL first, CID #14. + * ospf_ism.c: (ism_change_state) NULL check on oi->area is + useless, it's always valid. Only possibility where it + couldn't be is if there is a race between abr_task and + cleaning up oi's, in which case a NULL check here isn't going + to do anything. Fixes CID #15. 2006-05-11 Paul Jakma <paul.jakma@sun.com> diff --git a/ospfd/ospf_ism.c b/ospfd/ospf_ism.c index f65c68c9..0875e92d 100644 --- a/ospfd/ospf_ism.c +++ b/ospfd/ospf_ism.c @@ -569,19 +569,16 @@ ism_change_state (struct ospf_interface *oi, int state) ospf_check_abr_status (oi->ospf); /* Originate router-LSA. */ - if (oi->area) + if (state == ISM_Down) { - if (state == ISM_Down) - { - if (oi->area->act_ints > 0) - oi->area->act_ints--; - } - else if (old_state == ISM_Down) - oi->area->act_ints++; - - /* schedule router-LSA originate. */ - ospf_router_lsa_timer_add (oi->area); + if (oi->area->act_ints > 0) + oi->area->act_ints--; } + else if (old_state == ISM_Down) + oi->area->act_ints++; + + /* schedule router-LSA originate. */ + ospf_router_lsa_timer_add (oi->area); /* Originate network-LSA. */ if (old_state != ISM_DR && state == ISM_DR) |