summaryrefslogtreecommitdiff
path: root/isisd/isis_flex_algo.c
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2023-05-02 11:33:38 -0400
committerGitHub <noreply@github.com>2023-05-02 11:33:38 -0400
commitd0053da26b49166353c5f48c11fb11f6bea691d0 (patch)
tree5eed5e43a11b695373a1951869489c05a63c27c0 /isisd/isis_flex_algo.c
parentda57946b0e9fdb24133860df931a53dbd6646f84 (diff)
parent771d544a5b45f8509761ff78c85020715579206d (diff)
Merge pull request #13376 from louis-6wind/fix-flex-algo-mem-leak
isisd, lib: fix flex-algo memory leak
Diffstat (limited to 'isisd/isis_flex_algo.c')
-rw-r--r--isisd/isis_flex_algo.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/isisd/isis_flex_algo.c b/isisd/isis_flex_algo.c
index 0efc519eab..ef30987b8e 100644
--- a/isisd/isis_flex_algo.c
+++ b/isisd/isis_flex_algo.c
@@ -45,7 +45,7 @@ void *isis_flex_algo_data_alloc(void *voidarg)
struct isis_flex_algo_alloc_arg *arg = voidarg;
struct isis_flex_algo_data *data;
- data = XCALLOC(MTYPE_FLEX_ALGO, sizeof(*data));
+ data = XCALLOC(MTYPE_FLEX_ALGO, sizeof(struct isis_flex_algo_data));
for (int tree = SPFTREE_IPV4; tree < SPFTREE_COUNT; tree++) {
for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++) {
@@ -70,6 +70,7 @@ void isis_flex_algo_data_free(void *voiddata)
if (data->spftree[tree][level - 1])
isis_spftree_del(
data->spftree[tree][level - 1]);
+ XFREE(MTYPE_FLEX_ALGO, data);
}
static struct isis_router_cap_fad *