diff options
Diffstat (limited to 'bgpd/bgp_route.c')
| -rw-r--r-- | bgpd/bgp_route.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index d5bb53ad8d..4299ea3525 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -222,7 +222,10 @@ void bgp_path_info_extra_free(struct bgp_path_info_extra **extra) e = *extra; + if (e->damp_info) + bgp_damp_info_free(e->damp_info, 0); e->damp_info = NULL; + if (e->parent) { struct bgp_path_info *bpi = (struct bgp_path_info *)e->parent; @@ -10862,8 +10865,7 @@ static int bgp_show_table(struct vty *vty, struct bgp *bgp, safi_t safi, const char *com2alias = bgp_community2alias( communities[i]); - if (strncmp(alias, com2alias, - strlen(com2alias)) + if (strcmp(alias, com2alias) == 0) { found = true; break; @@ -10878,8 +10880,7 @@ static int bgp_show_table(struct vty *vty, struct bgp *bgp, safi_t safi, const char *com2alias = bgp_community2alias( communities[i]); - if (strncmp(alias, com2alias, - strlen(com2alias)) + if (strcmp(alias, com2alias) == 0) { found = true; break; @@ -14760,9 +14761,8 @@ static int bgp_clear_damp_route(struct vty *vty, const char *view_name, if (pi->extra && pi->extra->damp_info) { pi_temp = pi->next; bgp_damp_info_free( - &pi->extra->damp_info, - &bgp->damp[afi][safi], - 1, afi, safi); + pi->extra->damp_info, + 1); pi = pi_temp; } else pi = pi->next; @@ -14798,9 +14798,8 @@ static int bgp_clear_damp_route(struct vty *vty, const char *view_name, bdi->safi); } bgp_damp_info_free( - &pi->extra->damp_info, - &bgp->damp[afi][safi], - 1, afi, safi); + pi->extra->damp_info, + 1); pi = pi_temp; } else pi = pi->next; |
