From: David Lamparter Date: Wed, 8 Feb 2017 14:14:23 +0000 (+0100) Subject: lib: fix some coverity NULL check warnings X-Git-Tag: frr-3.0-branchpoint~42^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=a31ff449a002805a67e1efd2c5a03737a3fa7d72;p=mirror%2Ffrr.git lib: fix some coverity NULL check warnings Reported-by: Coverity Scan Signed-off-by: David Lamparter --- diff --git a/lib/command.c b/lib/command.c index cd8f6463e2..6467fb7185 100644 --- a/lib/command.c +++ b/lib/command.c @@ -699,6 +699,8 @@ cmd_complete_command (vector vline, struct vty *vty, int *status) vector_free (comps); comps = NULL; } + else if (initial_comps) + vector_free (initial_comps); // comps should always be null here assert (!comps); @@ -784,6 +786,8 @@ cmd_execute_command_real (vector vline, // if matcher error, return corresponding CMD_ERR if (MATCHER_ERROR(status)) { + if (argv_list) + list_delete (argv_list); switch (status) { case MATCHER_INCOMPLETE: diff --git a/lib/plist.c b/lib/plist.c index 41cae020de..4539d82972 100644 --- a/lib/plist.c +++ b/lib/plist.c @@ -557,10 +557,11 @@ prefix_list_entry_delete (struct prefix_list *plist, struct prefix_list_entry *pentry, int update_list) { - prefix_list_trie_del (plist, pentry); - if (plist == NULL || pentry == NULL) return; + + prefix_list_trie_del (plist, pentry); + if (pentry->prev) pentry->prev->next = pentry->next; else diff --git a/lib/routemap.c b/lib/routemap.c index 49b3039838..39d9a5d375 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -800,29 +800,29 @@ route_map_free_map (struct route_map *map) struct route_map_list *list; struct route_map_index *index; + if (map == NULL) + return; + while ((index = map->head) != NULL) route_map_index_delete (index, 0); list = &route_map_master; - if (map != NULL) - { - QOBJ_UNREG (map); + QOBJ_UNREG (map); - if (map->next) - map->next->prev = map->prev; - else - list->tail = map->prev; + if (map->next) + map->next->prev = map->prev; + else + list->tail = map->prev; - if (map->prev) - map->prev->next = map->next; - else - list->head = map->next; + if (map->prev) + map->prev->next = map->next; + else + list->head = map->next; - hash_release(route_map_master_hash, map); - XFREE (MTYPE_ROUTE_MAP_NAME, map->name); - XFREE (MTYPE_ROUTE_MAP, map); - } + hash_release(route_map_master_hash, map); + XFREE (MTYPE_ROUTE_MAP_NAME, map->name); + XFREE (MTYPE_ROUTE_MAP, map); } /* Route map delete from list. */ @@ -1053,7 +1053,7 @@ vty_show_route_map (struct vty *vty, const char *name) { if (zlog_default) vty_out (vty, "%s", zlog_proto_names[zlog_default->protocol]); - if (zlog_default->instance) + if (zlog_default && zlog_default->instance) vty_out (vty, " %d", zlog_default->instance); vty_out (vty, ": 'route-map %s' not found%s", name, VTY_NEWLINE); return CMD_SUCCESS;