Commit bfbea9e5 authored by Kuan-Wei Chiu's avatar Kuan-Wei Chiu Committed by Stephen Boyd
Browse files

clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()



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: default avatarKuan-Wei Chiu <visitorckw@gmail.com>
Link: https://lore.kernel.org/r/20231210165040.3407545-1-visitorckw@gmail.com


Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 1004c346
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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];