diff options
| author | F. Aragon <paco@voltanet.io> | 2018-06-28 16:16:35 +0200 |
|---|---|---|
| committer | F. Aragon <paco@voltanet.io> | 2018-06-29 11:03:06 +0200 |
| commit | 0866cdaf3e9f0ac0d779a14da69262c1fe8d54d9 (patch) | |
| tree | 345210a040103ee660ee152be5cb2f57436b3c46 | |
| parent | 62a9c814e1721a76b251d7c8861c51f196458695 (diff) | |
bgpd: null check (Coverity 1453455)
Signed-off-by: F. Aragon <paco@voltanet.io>
| -rw-r--r-- | bgpd/bgpd.c | 5 | ||||
| -rw-r--r-- | lib/linklist.c | 22 |
2 files changed, 5 insertions, 22 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 64f36ec6e3..c519270a5d 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -2733,9 +2733,8 @@ int peer_group_bind(struct bgp *bgp, union sockunion *su, struct peer *peer, if (peer->group) { assert(group && peer->group == group); } else { - struct listnode *pn; - pn = listnode_lookup(bgp->peer, peer); - list_delete_node(bgp->peer, pn); + listnode_delete(bgp->peer, peer); + peer->group = group; listnode_add_sort(bgp->peer, peer); diff --git a/lib/linklist.c b/lib/linklist.c index 2cfa3e7482..86649dd495 100644 --- a/lib/linklist.c +++ b/lib/linklist.c @@ -186,26 +186,10 @@ void listnode_move_to_tail(struct list *l, struct listnode *n) void listnode_delete(struct list *list, void *val) { - struct listnode *node; + struct listnode *node = listnode_lookup(list, val); - assert(list); - for (node = list->head; node; node = node->next) { - if (node->data == val) { - if (node->prev) - node->prev->next = node->next; - else - list->head = node->next; - - if (node->next) - node->next->prev = node->prev; - else - list->tail = node->prev; - - list->count--; - listnode_free(node); - return; - } - } + if (node) + list_delete_node(list, node); } void *listnode_head(struct list *list) |
