Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1304256 > unrolled thread

[PATCH] clk: mediatek: Fix memory leak on clock init fail

Started byJames Liao <jamesjj.liao@mediatek.com>
First post2016-01-08 09:20 +0100
Last post2016-01-08 09:30 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] clk: mediatek: Fix memory leak on clock init fail James Liao <jamesjj.liao@mediatek.com> - 2016-01-08 09:20 +0100
    Re: [PATCH] clk: mediatek: Fix memory leak on clock init fail Daniel Kurtz <djkurtz@chromium.org> - 2016-01-08 09:30 +0100

#1304256 — [PATCH] clk: mediatek: Fix memory leak on clock init fail

FromJames Liao <jamesjj.liao@mediatek.com>
Date2016-01-08 09:20 +0100
Subject[PATCH] clk: mediatek: Fix memory leak on clock init fail
Message-ID<qOAr8-413-13@gated-at.bofh.it>
mtk_clk_register_composite() may leak memory due to some error
handling path don't free all allocated memory. This patch
free all pointers that may allocate memory before error return.
And it's safe because kfree() can handle NULL pointers.

Signed-off-by: James Liao <jamesjj.liao@mediatek.com>
---
 drivers/clk/mediatek/clk-mtk.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index cf08db6..3528303 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -209,12 +209,14 @@ struct clk * __init mtk_clk_register_composite(const struct mtk_composite *mc,
 		mc->flags);
 
 	if (IS_ERR(clk)) {
-		kfree(gate);
-		kfree(mux);
+		ret = PTR_ERR(clk);
+		goto err_out;
 	}
 
 	return clk;
 err_out:
+	kfree(div);
+	kfree(gate);
 	kfree(mux);
 
 	return ERR_PTR(ret);
-- 
1.9.1

[toc] | [next] | [standalone]


#1304261

FromDaniel Kurtz <djkurtz@chromium.org>
Date2016-01-08 09:30 +0100
Message-ID<qOAAO-45F-11@gated-at.bofh.it>
In reply to#1304256
On Fri, Jan 8, 2016 at 4:15 PM, James Liao <jamesjj.liao@mediatek.com> wrote:
> mtk_clk_register_composite() may leak memory due to some error
> handling path don't free all allocated memory. This patch
> free all pointers that may allocate memory before error return.
> And it's safe because kfree() can handle NULL pointers.
>
> Signed-off-by: James Liao <jamesjj.liao@mediatek.com>

Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>

> ---
>  drivers/clk/mediatek/clk-mtk.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
> index cf08db6..3528303 100644
> --- a/drivers/clk/mediatek/clk-mtk.c
> +++ b/drivers/clk/mediatek/clk-mtk.c
> @@ -209,12 +209,14 @@ struct clk * __init mtk_clk_register_composite(const struct mtk_composite *mc,
>                 mc->flags);
>
>         if (IS_ERR(clk)) {
> -               kfree(gate);
> -               kfree(mux);
> +               ret = PTR_ERR(clk);
> +               goto err_out;
>         }
>
>         return clk;
>  err_out:
> +       kfree(div);
> +       kfree(gate);
>         kfree(mux);
>
>         return ERR_PTR(ret);
> --
> 1.9.1
>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web