Message ID | 20231210165040.3407545-1-visitorckw@gmail.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | clk: hi3620: Fix memory leak in hi3620_mmc_clk_init() | expand |
Quoting Kuan-Wei Chiu (2023-12-10 08:50:40) > In cases where kcalloc() fails for the 'clk_data->clks' allocation, 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 'clk_data' before returning. > > Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> > --- Applied to clk-next
diff --git a/drivers/clk/hisilicon/clk-hi3620.c b/drivers/clk/hisilicon/clk-hi3620.c index 2d7186905abd..5d0226530fdb 100644 --- a/drivers/clk/hisilicon/clk-hi3620.c +++ b/drivers/clk/hisilicon/clk-hi3620.c @@ -466,8 +466,10 @@ static void __init hi3620_mmc_clk_init(struct device_node *node) return; clk_data->clks = kcalloc(num, sizeof(*clk_data->clks), GFP_KERNEL); - if (!clk_data->clks) + if (!clk_data->clks) { + kfree(clk_data); return; + } for (i = 0; i < num; i++) { struct hisi_mmc_clock *mmc_clk = &hi3620_mmc_clks[i];
In cases where kcalloc() fails for the 'clk_data->clks' allocation, 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 'clk_data' before returning. Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com> --- drivers/clk/hisilicon/clk-hi3620.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)