]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mm/damon/sysfs: dealloc commit test ctx always
authorSeongJae Park <sj@kernel.org>
Fri, 3 Oct 2025 20:14:55 +0000 (13:14 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 13:10:25 +0000 (14:10 +0100)
commit 139e7a572af0b45f558b5e502121a768dc328ba8 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
mm/damon/sysfs.c

index 5a4c0a2067b256f5af108b0f91d2c39da168c9af..2959beb4bcbfd5dc21f690bad44b7c394e467fd6 100644 (file)
@@ -1438,12 +1438,11 @@ static int damon_sysfs_commit_input(void *data)
        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;
 }