clk: imx: scu: fix a potential memory leak in __imx_clk_gpr_scu()
authorXiaoke Wang <xkernel.wang@foxmail.com>
Thu, 7 Apr 2022 07:37:22 +0000 (15:37 +0800)
committerAbel Vesa <abel.vesa@nxp.com>
Tue, 12 Apr 2022 11:02:02 +0000 (14:02 +0300)
In __imx_clk_gpr_scu(), if imx_scu_clk_is_valid(rsrc_id) fails, then
`clk_node` which is allocated by kzalloc() is not properly released,
which may lead to memory leak.
So this patch added kfree(clk_node) on the above error path before
return ERR_PTR(-EINVAL).

Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
Reviewed-by: Abel Vesa <abel.vesa@nxp.com>
Link: https://lore.kernel.org/r/tencent_27FF59903EE6AB5C0D0E6D0A8E7059A59007@qq.com
Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
drivers/clk/imx/clk-scu.c

index 083da31dc3ead77a824091f033fbb2fe1f18a4f0..ed3c01d2e8ae545a50000ea614d8e73962cafde7 100644 (file)
@@ -837,8 +837,10 @@ struct clk_hw *__imx_clk_gpr_scu(const char *name, const char * const *parent_na
        if (!clk_node)
                return ERR_PTR(-ENOMEM);
 
-       if (!imx_scu_clk_is_valid(rsrc_id))
+       if (!imx_scu_clk_is_valid(rsrc_id)) {
+               kfree(clk_node);
                return ERR_PTR(-EINVAL);
+       }
 
        clk = kzalloc(sizeof(*clk), GFP_KERNEL);
        if (!clk) {