diff options
Diffstat (limited to 'ospfd')
-rw-r--r-- | ospfd/ChangeLog | 3 | ||||
-rw-r--r-- | ospfd/ospf_ia.c | 12 |
2 files changed, 8 insertions, 7 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 72e363e9..82e745ca 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -13,6 +13,9 @@ * ospf_asbr.h: (ospf_redistribute_withdraw) update declaration * ospf_zebra.c: (ospf_redistribute_unset) update call to ospf_redistribute_withdraw to match. + * 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. 2006-05-11 Paul Jakma <paul.jakma@sun.com> diff --git a/ospfd/ospf_ia.c b/ospfd/ospf_ia.c index a701e8c9..6a8c3c63 100644 --- a/ospfd/ospf_ia.c +++ b/ospfd/ospf_ia.c @@ -464,13 +464,11 @@ ospf_update_router_route (struct ospf *ospf, if ((ospf->backbone == NULL) && (ospf->abr_type != OSPF_ABR_SHORTCUT)) - - /* no BB area, not Shortcut ABR, exiting */ - return; - - or = ospf_find_asbr_route_through_area (rtrs, p, ospf->backbone); - - if (or == NULL) + return; /* no BB area, not Shortcut ABR, exiting */ + + /* find the backbone route, if possible */ + if ((ospf->backbone == NULL) + || !(or = ospf_find_asbr_route_through_area (rtrs, p, ospf->backbone))) { if (ospf->abr_type != OSPF_ABR_SHORTCUT) |