lkml.org 
[lkml]   [2021]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectAW: [PATCH 1/4] clk: mvebu: Fix a memory leak in an error handling path
Date
nitpicking:
clk_name could be replaced with cpuclk[cpu].clk_name

and the commit msg is from the other patch (free cpuclk[cpu].clk_name)

jm2c,

re,
wh
________________________________________
Von: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Gesendet: Freitag, 23. April 2021 08:25:01
An: mturquette@baylibre.com; sboyd@kernel.org; gregory.clement@bootlin.com; thomas.petazzoni@free-electrons.com
Cc: linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; kernel-janitors@vger.kernel.org; Christophe JAILLET
Betreff: [PATCH 1/4] clk: mvebu: Fix a memory leak in an error handling path

WARNUNG: Diese E-Mail kam von außerhalb der Organisation. Klicken Sie nicht auf Links oder öffnen Sie keine Anhänge, es sei denn, Sie kennen den/die Absender*in und wissen, dass der Inhalt sicher ist.


If an error occurs in the for_each loop, clk_name must be freed.

In order to do so, sightly rearrange the code:
- move the allocation to simplify error handling
- use kasprintf instead of kzalloc/sprintf to simplify code and avoid a
magic number

Fixes: ab8ba01b3fe5 ("clk: mvebu: add armada-370-xp CPU specific clocks")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
The { } around the 1 line block after kasprintf is intentional and makes
sense with 2/2
---
drivers/clk/mvebu/clk-cpu.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/clk/mvebu/clk-cpu.c b/drivers/clk/mvebu/clk-cpu.c
index c2af3395cf13..a11d7273fcc7 100644
--- a/drivers/clk/mvebu/clk-cpu.c
+++ b/drivers/clk/mvebu/clk-cpu.c
@@ -195,17 +195,17 @@ static void __init of_cpu_clk_setup(struct device_node *node)
for_each_of_cpu_node(dn) {
struct clk_init_data init;
struct clk *clk;
- char *clk_name = kzalloc(5, GFP_KERNEL);
+ char *clk_name;
int cpu, err;

- if (WARN_ON(!clk_name))
- goto bail_out;
-
err = of_property_read_u32(dn, "reg", &cpu);
if (WARN_ON(err))
goto bail_out;

- sprintf(clk_name, "cpu%d", cpu);
+ clk_name = kasprintf(GFP_KERNEL, "cpu%d", cpu);
+ if (WARN_ON(!clk_name)) {
+ goto bail_out;
+ }

cpuclk[cpu].parent_name = of_clk_get_parent_name(node, 0);
cpuclk[cpu].clk_name = clk_name;
--
2.27.0
\
 
 \ /
  Last update: 2021-04-23 13:43    [W:0.085 / U:0.156 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site