diff options
-rw-r--r-- | bgpd/bgp_clist.c | 5 | ||||
-rw-r--r-- | lib/command_match.c | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/bgpd/bgp_clist.c b/bgpd/bgp_clist.c index 7cf147754..0ffbe174e 100644 --- a/bgpd/bgp_clist.c +++ b/bgpd/bgp_clist.c @@ -1054,6 +1054,9 @@ int extcommunity_list_set(struct community_list_handler *ch, const char *name, struct ecommunity *ecom = NULL; regex_t *regex = NULL; + if (str == NULL) + return COMMUNITY_LIST_ERR_MALFORMED_VAL; + entry = NULL; /* Get community list. */ @@ -1089,7 +1092,7 @@ int extcommunity_list_set(struct community_list_handler *ch, const char *name, entry = community_entry_new(); entry->direct = direct; entry->style = style; - entry->any = (str ? 0 : 1); + entry->any = 0; if (ecom) entry->config = ecommunity_ecom2str( ecom, ECOMMUNITY_FORMAT_COMMUNITY_LIST, 0); diff --git a/lib/command_match.c b/lib/command_match.c index 99ec03e0c..4893ead04 100644 --- a/lib/command_match.c +++ b/lib/command_match.c @@ -609,6 +609,7 @@ static struct list *disambiguate(struct list *first, struct list *second, vector vline, unsigned int n) { // doesn't make sense for these to be inequal length + assert(first && second); assert(first->count == second->count); assert(first->count == vector_active(vline) - n + 1); |