summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_vty.c18
-rwxr-xr-xconfigure.ac2
-rw-r--r--lib/plist.c9
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
{