summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2024-08-13 18:00:30 +0300
committerDonatas Abraitis <donatas@opensourcerouting.org>2024-08-13 18:00:30 +0300
commit1e288c9b559c186ce1a4765997b36ec4a9f3fbf5 (patch)
tree1d1eda0c4806ae1c8fbe7d42c2d6564f73c09503 /zebra/zebra_rib.c
parent423e8076b53fe359f83575c5f2d8b80741d592b5 (diff)
zebra: Do not forget to free opaque data for route entry
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 0f02b0a2ec..59190e9dd3 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -2696,8 +2696,7 @@ static void early_route_memory_free(struct zebra_early_route *ere)
if (ere->re_nhe)
zebra_nhg_free(ere->re_nhe);
- zapi_re_opaque_free(ere->re->opaque);
- XFREE(MTYPE_RE, ere->re);
+ zebra_rib_route_entry_free(ere->re);
XFREE(MTYPE_WQ_WRAPPER, ere);
}
@@ -4070,9 +4069,7 @@ void rib_unlink(struct route_node *rn, struct route_entry *re)
rib_re_nhg_free(re);
- zapi_re_opaque_free(re->opaque);
-
- XFREE(MTYPE_RE, re);
+ zebra_rib_route_entry_free(re);
}
void rib_delnode(struct route_node *rn, struct route_entry *re)
@@ -4319,6 +4316,7 @@ struct route_entry *zebra_rib_route_entry_new(vrf_id_t vrf_id, int type,
void zebra_rib_route_entry_free(struct route_entry *re)
{
+ zapi_re_opaque_free(re);
XFREE(MTYPE_RE, re);
}
@@ -4389,7 +4387,7 @@ int rib_add_multipath(afi_t afi, safi_t safi, struct prefix *p,
/* In error cases, free the route also */
if (ret < 0)
- XFREE(MTYPE_RE, re);
+ zebra_rib_route_entry_free(re);
return ret;
}