diff options
| author | Josh Law <objecting@objecting.org> | 2026-03-21 10:54:24 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-04-02 13:25:49 +0200 |
| commit | f76f0a964bc3d7b7e253b43c669c41356bc54e71 (patch) | |
| tree | 2bade4a0ffc3d74aacc00bb3eb6cb7a7171c95e8 /mm/damon/sysfs.c | |
| parent | 83737e34b83a23b2a9bcf586b058b2c2a54c7c6b (diff) | |
mm/damon/sysfs: fix param_ctx leak on damon_sysfs_new_test_ctx() failure
commit 7fe000eb32904758a85e62f6ea9483f89d5dabfc upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/damon/sysfs.c')
| -rw-r--r-- | mm/damon/sysfs.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index 4a74c46770c0..cb4acad8d12c 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1526,8 +1526,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; |
