Skip to content

Commit

Permalink
Merge pull request #14989 from FRRouting/mergify/bp/stable/9.0/pr-14983
Browse files Browse the repository at this point in the history
zebra: The dplane_fpm_nl return path leaks memory (backport #14983)
  • Loading branch information
ton31337 authored Dec 12, 2023
2 parents 93f0a72 + d855c7a commit f213517
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 0 deletions.
2 changes: 2 additions & 0 deletions zebra/rib.h
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,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,
Expand Down
2 changes: 2 additions & 0 deletions zebra/rt_netlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -993,6 +993,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
Expand Down
6 changes: 6 additions & 0 deletions zebra/zebra_rib.c
Original file line number Diff line number Diff line change
Expand Up @@ -4249,6 +4249,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
Expand Down

0 comments on commit f213517

Please sign in to comment.