[PATCH] ti: fix possible memory leak in _ti_omap4_clkctrl_setup

Hangyu Hua posted 1 patch 2 years, 1 month ago
drivers/clk/ti/clkctrl.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] ti: fix possible memory leak in _ti_omap4_clkctrl_setup
Posted by Hangyu Hua 2 years, 1 month ago
kstrndup and kstrdup_and_replace in clkctrl_get_name can perform
dynamic memory allocation. So clkctrl_name needs to be freed when
provider->clkdm_name is NULL.

Fixes: bd46cd0b802d ("clk: ti: clkctrl: check return value of kasprintf()")
Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
---
 drivers/clk/ti/clkctrl.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/clk/ti/clkctrl.c b/drivers/clk/ti/clkctrl.c
index 607e34d8e289..cb4aa8a45bb2 100644
--- a/drivers/clk/ti/clkctrl.c
+++ b/drivers/clk/ti/clkctrl.c
@@ -591,6 +591,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
 		provider->clkdm_name = kasprintf(GFP_KERNEL,
 						 "%s_clkdm", clkctrl_name);
 		if (!provider->clkdm_name) {
+			kfree(clkctrl_name);
 			kfree(provider);
 			return;
 		}
-- 
2.34.1
Re: [PATCH] ti: fix possible memory leak in _ti_omap4_clkctrl_setup
Posted by Andy Shevchenko 2 years, 1 month ago
On Wed, Oct 25, 2023 at 05:07:41PM +0800, Hangyu Hua wrote:
> kstrndup and kstrdup_and_replace in clkctrl_get_name can perform

kstrndup()
kstrdup_and_replace()
clkctrl_get_name()

> dynamic memory allocation. So clkctrl_name needs to be freed when
> provider->clkdm_name is NULL.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH] ti: fix possible memory leak in _ti_omap4_clkctrl_setup
Posted by Hangyu Hua 2 years, 1 month ago
On 26/10/2023 20:18, Andy Shevchenko wrote:
> On Wed, Oct 25, 2023 at 05:07:41PM +0800, Hangyu Hua wrote:
>> kstrndup and kstrdup_and_replace in clkctrl_get_name can perform
> 
> kstrndup()
> kstrdup_and_replace()
> clkctrl_get_name()
> 

I see. I will send a v2 later.

Thanks,
Hangyu

>> dynamic memory allocation. So clkctrl_name needs to be freed when
>> provider->clkdm_name is NULL.
>