| From: SeongJae Park <sj@kernel.org> |
| Subject: mm/damon/sysfs: dealloc commit test ctx always |
| Date: Fri, 3 Oct 2025 13:14:55 -0700 |
| |
| The damon_ctx for testing online DAMON parameters commit inputs is |
| deallocated only when the test fails. This means memory is leaked for |
| every successful online DAMON parameters commit. Fix the leak by always |
| deallocating it. |
| |
| Link: https://lkml.kernel.org/r/20251003201455.41448-3-sj@kernel.org |
| Fixes: 4c9ea539ad59 ("mm/damon/sysfs: validate user inputs from damon_sysfs_commit_input()") |
| Signed-off-by: SeongJae Park <sj@kernel.org> |
| Cc: <stable@vger.kernel.org> [6.15+] |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/damon/sysfs.c | 5 ++--- |
| 1 file changed, 2 insertions(+), 3 deletions(-) |
| |
| --- a/mm/damon/sysfs.c~mm-damon-sysfs-dealloc-commit-test-ctx-always |
| +++ a/mm/damon/sysfs.c |
| @@ -1476,12 +1476,11 @@ static int damon_sysfs_commit_input(void |
| if (!test_ctx) |
| return -ENOMEM; |
| err = damon_commit_ctx(test_ctx, param_ctx); |
| - if (err) { |
| - damon_destroy_ctx(test_ctx); |
| + if (err) |
| goto out; |
| - } |
| err = damon_commit_ctx(kdamond->damon_ctx, param_ctx); |
| out: |
| + damon_destroy_ctx(test_ctx); |
| damon_destroy_ctx(param_ctx); |
| return err; |
| } |
| _ |