[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231210175232.3414584-1-visitorckw@gmail.com>
Date: Mon, 11 Dec 2023 01:52:32 +0800
From: Kuan-Wei Chiu <visitorckw@...il.com>
To: mturquette@...libre.com, sboyd@...nel.org
Cc: duje.mihanovic@...le.hr, conor.dooley@...rochip.com,
linux-clk@...r.kernel.org, linux-kernel@...r.kernel.org,
Kuan-Wei Chiu <visitorckw@...il.com>
Subject: [PATCH] clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()
In cases where mapping of mpmu/apmu/apbc registers fails, the code path
does not handle the failure gracefully, potentially leading to a memory
leak. This fix ensures proper cleanup by freeing the allocated memory
for 'pxa_unit' before returning.
Signed-off-by: Kuan-Wei Chiu <visitorckw@...il.com>
---
drivers/clk/mmp/clk-of-pxa168.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/clk/mmp/clk-of-pxa168.c b/drivers/clk/mmp/clk-of-pxa168.c
index fb0df64cf053..c5a7ba1deaa3 100644
--- a/drivers/clk/mmp/clk-of-pxa168.c
+++ b/drivers/clk/mmp/clk-of-pxa168.c
@@ -308,18 +308,21 @@ static void __init pxa168_clk_init(struct device_node *np)
pxa_unit->mpmu_base = of_iomap(np, 0);
if (!pxa_unit->mpmu_base) {
pr_err("failed to map mpmu registers\n");
+ kfree(pxa_unit);
return;
}
pxa_unit->apmu_base = of_iomap(np, 1);
if (!pxa_unit->apmu_base) {
pr_err("failed to map apmu registers\n");
+ kfree(pxa_unit);
return;
}
pxa_unit->apbc_base = of_iomap(np, 2);
if (!pxa_unit->apbc_base) {
pr_err("failed to map apbc registers\n");
+ kfree(pxa_unit);
return;
}
--
2.25.1
Powered by blists - more mailing lists