From e26d059052a8ae9bd122a98ac9e3fc148566a7a2 Mon Sep 17 00:00:00 2001
From: Namjae Jeon <linkinjeon@kernel.org>
Date: Thu, 6 Apr 2023 22:18:40 +0900
Subject: [PATCH 2/4] ksmbd-tools: fix memleak in rpc_samr_destroy()

Add samr_ch_clear_table() to clear ch entry from table.

Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
---
 mountd/rpc_samr.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/mountd/rpc_samr.c b/mountd/rpc_samr.c
index 7887155aefc7..9c38700bf475 100644
--- a/mountd/rpc_samr.c
+++ b/mountd/rpc_samr.c
@@ -1052,9 +1052,22 @@ int rpc_samr_init(void)
 	return 0;
 }
 
+static void free_ch_entry(gpointer k, gpointer s, gpointer user_data)
+{
+	g_free(s);
+}
+
+static void samr_ch_clear_table(void)
+{
+	g_rw_lock_writer_lock(&ch_table_lock);
+	g_hash_table_foreach(ch_table, free_ch_entry, NULL);
+	g_rw_lock_writer_unlock(&ch_table_lock);
+}
+
 void rpc_samr_destroy(void)
 {
 	if (ch_table) {
+		samr_ch_clear_table();
 		g_hash_table_destroy(ch_table);
 		ch_table = NULL;
 	}
-- 
2.34.1

