From: F. Aragon Date: Thu, 28 Jun 2018 14:16:35 +0000 (+0200) Subject: bgpd: null check (Coverity 1453455) X-Git-Tag: frr-6.1-dev~221^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=0866cdaf3e9f0ac0d779a14da69262c1fe8d54d9;p=matthieu%2Ffrr.git bgpd: null check (Coverity 1453455) Signed-off-by: F. Aragon --- 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)