summaryrefslogtreecommitdiff
path: root/kernel/time
diff options
context:
space:
mode:
authorMalaya Kumar Rout <malayarout91@gmail.com>2026-07-04 14:25:33 +0530
committerThomas Gleixner <tglx@kernel.org>2026-07-07 23:26:58 +0200
commiteddfded4196542deda7cb2da3d7ebef83f7ccfa4 (patch)
treef84a8d9f3f76427831e0e11234e7be06dd84c053 /kernel/time
parentf2eee7e31ccd4bc87d047d8670cc2ec39cf36647 (diff)
timers/migration: Fix memory leak in tmigr_setup_groups() error path
When the WARN_ON_ONCE(i >= tmigr_hierarchy_levels) assertion triggers, the function returns -EINVAL without freeing the 'stack' memory allocated via kzalloc_objs() at the beginning of the function. Add kfree(stack) before returning to prevent the memory leak. Fixes: 6c181b5667ee ("timers/migration: Convert "while" loops to use "for"") Signed-off-by: Malaya Kumar Rout <malayarout91@gmail.com> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260704085533.87098-1-malayarout91@gmail.com
Diffstat (limited to 'kernel/time')
-rw-r--r--kernel/time/timer_migration.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c
index 806c23cf71fc..059d43355e65 100644
--- a/kernel/time/timer_migration.c
+++ b/kernel/time/timer_migration.c
@@ -1847,8 +1847,10 @@ static int tmigr_setup_groups(struct tmigr_hierarchy *hier, unsigned int cpu,
}
/* Assert single root without parent */
- if (WARN_ON_ONCE(i >= tmigr_hierarchy_levels))
+ if (WARN_ON_ONCE(i >= tmigr_hierarchy_levels)) {
+ kfree(stack);
return -EINVAL;
+ }
for (; i >= start_lvl; i--) {
group = stack[i];