diff --git a/bgpd/bgp_updgrp_adv.c b/bgpd/bgp_updgrp_adv.c index a95a11b620..8a3f4567ca 100644 --- a/bgpd/bgp_updgrp_adv.c +++ b/bgpd/bgp_updgrp_adv.c @@ -573,8 +573,9 @@ subgroup_clear_table (struct update_subgroup *subgrp) SUBGRP_FOREACH_ADJ_SAFE (subgrp, aout, taout) { - bgp_adj_out_remove_subgroup (aout->rn, aout, subgrp); - bgp_unlock_node (aout->rn); + struct bgp_node *rn = aout->rn; + bgp_adj_out_remove_subgroup (rn, aout, subgrp); + bgp_unlock_node (rn); } } diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 5dafac1e06..b0d96150a8 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -10317,6 +10317,10 @@ bgp_show_summary (struct vty *vty, struct bgp *bgp, int afi, int safi, if (peer->afc[afi][safi]) { + memset(dn_flag, '\0', sizeof(dn_flag)); + if (peer_dynamic_neighbor(peer)) + dn_flag[0] = '*'; + if (peer->hostname && bgp_flag_check(bgp, BGP_FLAG_SHOW_HOSTNAME)) sprintf(neighbor_buf, "%s%s(%s) ", dn_flag, peer->hostname, peer->host); else diff --git a/lib/routemap.c b/lib/routemap.c index 7b07499533..ace4961f72 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -1845,9 +1845,13 @@ route_map_finish (void) } for (i = 1; i < ROUTE_MAP_DEP_MAX; i++) - hash_free(route_map_dep_hash[i]); + { + hash_free(route_map_dep_hash[i]); + route_map_dep_hash[i] = NULL; + } hash_free (route_map_master_hash); + route_map_master_hash = NULL; } /* Initialization of route map vector. */