From 5677c8ac4bb023d45cb41e8b3e3288a0323b7d7b Mon Sep 17 00:00:00 2001
From: Steven Luong <sluong@cisco.com>
Date: Mon, 24 Jun 2024 08:18:38 -0700
Subject: session: memory leak in mma rule table

When the rule table is allocated, the root node is allocated. But it
cannot be deleted by the add_del API, or the table is useless.

When the table is free, the root node is not free and there is memory
leak. Let's add pool_flush when the rule table is free.

Type: fix

Change-Id: I58c3e040cd101c7db501d99a373ad78d85321b8f
Signed-off-by: Steven Luong <sluong@cisco.com>
---
 src/vnet/session/mma_template.c | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'src/vnet/session/mma_template.c')

diff --git a/src/vnet/session/mma_template.c b/src/vnet/session/mma_template.c
index 4b2770bb756..26a23b2d270 100644
--- a/src/vnet/session/mma_template.c
+++ b/src/vnet/session/mma_template.c
@@ -67,6 +67,9 @@ RT (mma_rule_free) (RTT (mma_rules_table) * srt, RTT (mma_rule) * rule)
 
 void RT (mma_rules_table_free) (RTT (mma_rules_table) * srt)
 {
+  RTT (mma_rule) * rule;
+
+  pool_flush (rule, srt->rules, ({}));
   pool_free (srt->rules);
 }
 
-- 
cgit