[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250305020123.605496-1-liuye@kylinos.cn>
Date: Wed, 5 Mar 2025 10:01:23 +0800
From: Liu Ye <liuye@...inos.cn>
To: akpm@...ux-foundation.org,
david@...morbit.com
Cc: zhengqi.arch@...edance.com,
roman.gushchin@...ux.dev,
muchun.song@...ux.dev,
linux-mm@...ck.org,
linux-kernel@...r.kernel.org,
Liu Ye <liuye@...inos.cn>
Subject: [PATCH] mm/shrinker_debug: Fix possible memory leak in shrinker_debugfs_rename function.
After calling debugfs_change_name function, the return value should be
checked and the old name restored. If debugfs_change_name fails, the new
name memory should be freed.
Signed-off-by: Liu Ye <liuye@...inos.cn>
---
mm/shrinker_debug.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/mm/shrinker_debug.c b/mm/shrinker_debug.c
index 794bd433cce0..20eaee3e97f7 100644
--- a/mm/shrinker_debug.c
+++ b/mm/shrinker_debug.c
@@ -214,10 +214,14 @@ int shrinker_debugfs_rename(struct shrinker *shrinker, const char *fmt, ...)
ret = debugfs_change_name(shrinker->debugfs_entry, "%s-%d",
shrinker->name, shrinker->debugfs_id);
+ if (ret) {
+ shrinker->name = old;
+ kfree_const(new);
+ } else {
+ kfree_const(old);
+ }
mutex_unlock(&shrinker_mutex);
- kfree_const(old);
-
return ret;
}
EXPORT_SYMBOL(shrinker_debugfs_rename);
--
2.25.1
Powered by blists - more mailing lists