diff options
-rw-r--r-- | ospfd/ChangeLog | 6 | ||||
-rw-r--r-- | ospfd/ospf_zebra.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 4070a8f7..cb164590 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,9 @@ +2005-08-05 Hasso Tepper <hasso at quagga.net> + + * ospf_zebra.c: Don't assert/stop before type == ZEBRA_ROUTE_MAX if + dealing with routemaps. There is ospf->route_map[ZEBRA_ROUTE_MAX] + for default-information. + 2005-07-26 Paul Jakma <paul.jakma@sun.com> * ospf_abr.c: (ospf_abr_announce_network_to_area) SET_FLAG diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c index 9db89810..0e1905a0 100644 --- a/ospfd/ospf_zebra.c +++ b/ospfd/ospf_zebra.c @@ -927,7 +927,7 @@ ospf_distribute_list_update_timer (struct thread *thread) struct ospf *ospf; type = (intptr_t)THREAD_ARG (thread); - assert (type < ZEBRA_ROUTE_MAX); + assert (type <= ZEBRA_ROUTE_MAX); rt = EXTERNAL_INFO (type); @@ -992,7 +992,7 @@ ospf_filter_update (struct access_list *access) return; /* Update distribute-list, and apply filter. */ - for (type = 0; type < ZEBRA_ROUTE_MAX; type++) + for (type = 0; type <= ZEBRA_ROUTE_MAX; type++) { if (ROUTEMAP (ospf, type) != NULL) { @@ -1001,6 +1001,10 @@ ospf_filter_update (struct access_list *access) continue; } + /* There is place for route-map for default-information (ZEBRA_ROUTE_MAX), + * but no distribute list. */ + if (type == ZEBRA_ROUTE_MAX) + break; if (DISTRIBUTE_NAME (ospf, type)) { @@ -1061,7 +1065,7 @@ ospf_prefix_list_update (struct prefix_list *plist) /* Update all route-maps which are used as redistribution filters. * They might use prefix-list. */ - for (type = 0; type < ZEBRA_ROUTE_MAX; type++) + for (type = 0; type <= ZEBRA_ROUTE_MAX; type++) { if (ROUTEMAP (ospf, type) != NULL) { |