]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: null check (Coverity 1453455)
authorF. Aragon <paco@voltanet.io>
Thu, 28 Jun 2018 14:16:35 +0000 (16:16 +0200)
committerF. Aragon <paco@voltanet.io>
Fri, 29 Jun 2018 09:03:06 +0000 (11:03 +0200)
Signed-off-by: F. Aragon <paco@voltanet.io>
bgpd/bgpd.c
lib/linklist.c

index 64f36ec6e3d8e475ba975bdcad5caf944738c274..c519270a5d1c23bcaad704d4c05ca3be5be4fb4b 100644 (file)
@@ -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);
 
index 2cfa3e748208158968754fa14ca314593b97d867..86649dd4952ec12dbdfec6c5272df9f8ce06ea8a 100644 (file)
@@ -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)