summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_main.c10
-rw-r--r--bgpd/bgpd.c4
2 files changed, 7 insertions, 7 deletions
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 7c1a9ea4a6..3ea74f2bdb 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -231,17 +231,17 @@ bgp_exit (int status)
bgp_close();
- /* reverse bgp_master_init */
- for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
- bgp_delete (bgp);
- list_free (bm->bgp);
-
if (retain_mode)
if_add_hook (IF_DELETE_HOOK, NULL);
/* free interface and connected route information. */
bgp_if_finish ();
+ /* reverse bgp_master_init */
+ for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
+ bgp_delete (bgp);
+ list_free (bm->bgp);
+
/* reverse bgp_attr_init */
bgp_attr_finish ();
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index ef2004295e..55320179e1 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -7182,13 +7182,13 @@ bgp_if_finish (void)
for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
{
- struct listnode *ifnode;
+ struct listnode *ifnode, *ifnnode;
struct interface *ifp;
if (bgp->inst_type == BGP_INSTANCE_TYPE_VIEW)
continue;
- for (ALL_LIST_ELEMENTS_RO (vrf_iflist(bgp->vrf_id), ifnode, ifp))
+ for (ALL_LIST_ELEMENTS (vrf_iflist(bgp->vrf_id), ifnode, ifnnode, ifp))
{
struct listnode *c_node, *c_nnode;
struct connected *c;