* bgpd.c: Don't crash while deleting list of peer-groups.

	[backport candidate]
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index c199568..f969661 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -1912,6 +1912,7 @@
 bgp_delete (struct bgp *bgp)
 {
   struct peer *peer;
+  struct peer_group *group;
   struct listnode *node;
   struct listnode *next;
   afi_t afi;
@@ -1927,8 +1928,8 @@
       if (i != ZEBRA_ROUTE_BGP)
 	bgp_redistribute_unset (bgp, afi, i);
 
-  bgp->group->del = (void (*)(void *)) peer_group_delete;
-  list_delete (bgp->group);
+  for (ALL_LIST_ELEMENTS (bgp->group, node, next, group))
+    peer_group_delete (group);
 
   for (ALL_LIST_ELEMENTS (bgp->peer, node, next, peer))
     peer_delete (peer);