From 0866cdaf3e9f0ac0d779a14da69262c1fe8d54d9 Mon Sep 17 00:00:00 2001 From: "F. Aragon" Date: Thu, 28 Jun 2018 16:16:35 +0200 Subject: [PATCH] bgpd: null check (Coverity 1453455) Signed-off-by: F. Aragon --- bgpd/bgpd.c | 5 ++--- 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) -- 2.39.5