summaryrefslogtreecommitdiff
path: root/bgpd/bgp_route.c
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_route.c')
-rw-r--r--bgpd/bgp_route.c19
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;