From b6b7cff22df912938f6cfd755dcad8cf915be2d0 Mon Sep 17 00:00:00 2001 From: hasso Date: Thu, 26 May 2005 08:29:07 +0000 Subject: * bgpd.c: Don't crash while deleting list of peer-groups. [backport candidate] --- bgpd/ChangeLog | 4 ++++ bgpd/bgpd.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'bgpd') diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index 826b930f..74fe5962 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,7 @@ +2005-05-26 Hasso Tepper + + * bgpd.c: Don't crash while deleting list of peer-groups. + 2005-05-25 Hasso Tepper * bgpd.c: Fix obvious (routeserver patch) merge error. This makes "no diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index c1995682..f9696610 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -1912,6 +1912,7 @@ int 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 @@ bgp_delete (struct bgp *bgp) 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); -- cgit v1.2.1