mm/damon/sysfs-schemes: free old damon_sysfs_scheme_filter->memcg_path on write

commit 4f489fe6afb395dbc79840efa3c05440b760d883 upstream.

memcg_path_store() assigns a newly allocated memory buffer to
filter->memcg_path, without deallocating the previously allocated and
assigned memory buffer.  As a result, users can leak kernel memory by
continuously writing a data to memcg_path DAMOS sysfs file.  Fix the leak
by deallocating the previously set memory buffer.

Link: https://lkml.kernel.org/r/20250619183608.6647-2-sj@kernel.org
Fixes: 7ee161f18b ("mm/damon/sysfs-schemes: implement filter directory")
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: <stable@vger.kernel.org>		[6.3.x]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 490a43d07f1663d827e802720d30cbc0494e4f81)
This commit is contained in:
SeongJae Park 2025-06-19 11:36:07 -07:00 committed by Wentao Guan
parent ec5c46fcd7
commit 9edebef382
1 changed files with 1 additions and 0 deletions

View File

@ -376,6 +376,7 @@ static ssize_t memcg_path_store(struct kobject *kobj,
return -ENOMEM;
strscpy(path, buf, count + 1);
kfree(filter->memcg_path);
filter->memcg_path = path;
return count;
}