damon/sysfs: Fix possible memleak on damon_sysfs_add_target.
Subsystems (2)
PATCH v2 1/1 damon/sysfs: Fix possible memleak on damon_sysfs_add_target.
When damon_sysfs_add_target couldn't find proper task, New allocated damon_target structure isn't registered yet, So, it's impossible to free new allocated one by damon_sysfs_destroy_targets.
By calling damon_add_target first as soon as allocate new one, Fix possible memory leak.
Signed-off-by Levi Yun <[email protected]>
--- mm/damon/sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/damon/sysfs.c +1 -1
@@ -2182,12 +2182,12 @@ static int damon_sysfs_add_target(struct damon_sysfs_target *sys_target,if (!t)return -ENOMEM ; +damon_add_target (ctx, t);if (damon_target_has_pid (ctx)) { t->pid =find_get_pid (sys_target->pid);if (!t->pid) goto destroy_targets_out; } -damon_add_target (ctx, t); err =damon_sysfs_set_regions (t, sys_target->regions);if (err) goto destroy_targets_out;
--
2.35.1
Sorry to make noise... I miss the fixes tag, resend the patch! Thanks!
Quoted 34 lines · Levi Yun
When
damon_sysfs_add_targetcouldn't find proper task, New allocateddamon_targetstructure isn't registered yet, So, it's impossible to free new allocated one bydamon_sysfs_destroy_targets.By calling
damon_add_targetfirst as soon as allocate new one, Fix possible memory leak.Signed-off-by Levi Yun <[email protected]>--- mm/damon/sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/damon/sysfs.c +1
-2@@ -2182,12 +2182,12 @@ static int damon_sysfs_add_target(struct damon_sysfs_target *sys_target,if (!t)return -ENOMEM ; +damon_add_target (ctx, t);if (damon_target_has_pid (ctx)) { t->pid =find_get_pid (sys_target->pid);if (!t->pid) goto destroy_targets_out; } -damon_add_target (ctx, t); err =damon_sysfs_set_regions (t, sys_target->regions);if (err) goto destroy_targets_out; --2.35.1