diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2023-12-12 16:30:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-12 16:30:21 +0200 |
| commit | 7163844e77d98b491f5c2ff26d03856d88cf0c78 (patch) | |
| tree | c9cd94a6d8212b29f07fd229f4fa090506e09f53 | |
| parent | a32620de4e27285c0c3482f385fcf03c3b6542f1 (diff) | |
| parent | ff23fdfb4b33aa636aa09d144f0865dd5751551a (diff) | |
Merge pull request #14988 from FRRouting/mergify/bp/stable/9.1/pr-14983
zebra: The dplane_fpm_nl return path leaks memory (backport #14983)
| -rw-r--r-- | zebra/rib.h | 2 | ||||
| -rw-r--r-- | zebra/rt_netlink.c | 2 | ||||
| -rw-r--r-- | zebra/zebra_rib.c | 6 |
3 files changed, 10 insertions, 0 deletions
diff --git a/zebra/rib.h b/zebra/rib.h index e70b5c1423..f53c02bc2c 100644 --- a/zebra/rib.h +++ b/zebra/rib.h @@ -345,6 +345,8 @@ extern void _route_entry_dump(const char *func, union prefixconstptr pp, union prefixconstptr src_pp, const struct route_entry *re); +void zebra_rib_route_entry_free(struct route_entry *re); + struct route_entry * zebra_rib_route_entry_new(vrf_id_t vrf_id, int type, uint8_t instance, uint32_t flags, uint32_t nhe_id, uint32_t table_id, diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index b8362bbba5..7b29c05498 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -1025,6 +1025,8 @@ int netlink_route_change_read_unicast_internal(struct nlmsghdr *h, re, ng, startup, ctx); if (ng) nexthop_group_delete(&ng); + if (ctx) + zebra_rib_route_entry_free(re); } else { /* * I really don't see how this is possible diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 51af8953ed..0f559e874f 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -4267,6 +4267,12 @@ struct route_entry *zebra_rib_route_entry_new(vrf_id_t vrf_id, int type, return re; } + +void zebra_rib_route_entry_free(struct route_entry *re) +{ + XFREE(MTYPE_RE, re); +} + /* * Internal route-add implementation; there are a couple of different public * signatures. Callers in this path are responsible for the memory they |
