diff options
| author | James Liao <[email protected]> | 2016-01-08 16:15:33 +0800 |
|---|---|---|
| committer | Stephen Boyd <[email protected]> | 2016-01-29 13:02:51 -0800 |
| commit | 4974259e18f1fd519d4329babbfefa24852375bb (patch) | |
| tree | b722d67e701dda10844e2d5a482f2b6e17cf510a | |
| parent | 5fd9c05c846db98319e75496612da24435cee208 (diff) | |
clk: mediatek: Fix memory leak on clock init fail
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 <[email protected]>
Reviewed-by: Daniel Kurtz <[email protected]>
Signed-off-by: Stephen Boyd <[email protected]>
| -rw-r--r-- | drivers/clk/mediatek/clk-mtk.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c index cf08db6c130c..352830369e0e 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); |