diff options
-rw-r--r-- | bgpd/bgp_vty.c | 18 | ||||
-rwxr-xr-x | configure.ac | 2 | ||||
-rw-r--r-- | lib/plist.c | 9 |
3 files changed, 24 insertions, 5 deletions
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 222e4485..25287a85 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -10367,6 +10367,7 @@ DEFUN (show_ip_community_list, vector extract ; vector_index i ; struct symbol* sym ; + struct community_list *list; table = community_list_master_lookup (bgp_clist, COMMUNITY_LIST_MASTER); if (table == NULL) @@ -10375,7 +10376,11 @@ DEFUN (show_ip_community_list, extract = symbol_table_extract(table, NULL, NULL, 0, symbol_mixed_name_cmp) ; for (VECTOR_ITEMS(extract, sym, i)) - community_list_show (vty, symbol_get_value(sym)); + { + list = symbol_get_value(sym) ; + if (list != NULL) + community_list_show (vty, list); + } ; vector_free(extract) ; /* discard temporary vector */ @@ -10721,6 +10726,7 @@ DEFUN (show_ip_extcommunity_list, vector extract ; vector_index i ; struct symbol* sym ; + struct community_list *list; table = community_list_master_lookup (bgp_clist, EXTCOMMUNITY_LIST_MASTER); if (table == NULL) @@ -10729,7 +10735,11 @@ DEFUN (show_ip_extcommunity_list, extract = symbol_table_extract(table, NULL, NULL, 0, symbol_mixed_name_cmp) ; for (VECTOR_ITEMS(extract, sym, i)) - extcommunity_list_show (vty, symbol_get_value(sym)); + { + list = symbol_get_value(sym) ; + if (list != NULL) + extcommunity_list_show (vty, list); + } ; vector_free(extract) ; /* discard temporary vector */ @@ -10796,6 +10806,10 @@ community_list_config_write_list(struct vty* vty, int what) for (VECTOR_ITEMS(extract, sym, i)) { list = symbol_get_value(sym) ; + + if (list == NULL) + continue ; + for (entry = list->head; entry; entry = entry->next) { const char* list_type = "" ; diff --git a/configure.ac b/configure.ac index e3c97768..61afe05d 100755 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ ## $Id$ AC_PREREQ(2.53) -AC_INIT(Quagga, 0.99.15ex08, [http://bugzilla.quagga.net]) +AC_INIT(Quagga, 0.99.15ex09, [http://bugzilla.quagga.net]) AC_CONFIG_SRCDIR(lib/zebra.h) AC_CONFIG_MACRO_DIR([m4]) diff --git a/lib/plist.c b/lib/plist.c index b2163e2b..e5c71d35 100644 --- a/lib/plist.c +++ b/lib/plist.c @@ -1609,8 +1609,13 @@ vty_clear_prefix_list (struct vty *vty, afi_t afi, const char *name, struct symbol_walker walker ; symbol_walk_start(&pm->table, &walker) ; while ((plist = symbol_get_value(symbol_walk_next(&walker)))) - for (VECTOR_ITEMS(&plist->list, pe, i)) - pe->hitcnt = 0 ; + { + if (plist == NULL) + continue ; + + for (VECTOR_ITEMS(&plist->list, pe, i)) + pe->hitcnt = 0 ; + } ; } else { |