Commit 7fe000eb3290 for kernel

commit 7fe000eb32904758a85e62f6ea9483f89d5dabfc
Author: Josh Law <objecting@objecting.org>
Date:   Sat Mar 21 10:54:24 2026 -0700

    mm/damon/sysfs: fix param_ctx leak on damon_sysfs_new_test_ctx() failure

    Patch series "mm/damon/sysfs: fix memory leak and NULL dereference
    issues", v4.

    DAMON_SYSFS can leak memory under allocation failure, and do NULL pointer
    dereference when a privileged user make wrong sequences of control.  Fix
    those.


    This patch (of 3):

    When damon_sysfs_new_test_ctx() fails in damon_sysfs_commit_input(),
    param_ctx is leaked because the early return skips the cleanup at the out
    label.  Destroy param_ctx before returning.

    Link: https://lkml.kernel.org/r/20260321175427.86000-1-sj@kernel.org
    Link: https://lkml.kernel.org/r/20260321175427.86000-2-sj@kernel.org
    Fixes: f0c5118ebb0e ("mm/damon/sysfs: catch commit test ctx alloc failure")
    Signed-off-by: Josh Law <objecting@objecting.org>
    Reviewed-by: SeongJae Park <sj@kernel.org>
    Signed-off-by: SeongJae Park <sj@kernel.org>
    Cc: <stable@vger.kernel.org>    [6.18+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
index 576d1ddd736b..b573b9d60784 100644
--- a/mm/damon/sysfs.c
+++ b/mm/damon/sysfs.c
@@ -1524,8 +1524,10 @@ static int damon_sysfs_commit_input(void *data)
 	if (IS_ERR(param_ctx))
 		return PTR_ERR(param_ctx);
 	test_ctx = damon_sysfs_new_test_ctx(kdamond->damon_ctx);
-	if (!test_ctx)
+	if (!test_ctx) {
+		damon_destroy_ctx(param_ctx);
 		return -ENOMEM;
+	}
 	err = damon_commit_ctx(test_ctx, param_ctx);
 	if (err)
 		goto out;