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@xxxxxxxxxx> Gesendet: Freitag, 23. April 2021 08:25:01 An: mturquette@xxxxxxxxxxxx; sboyd@xxxxxxxxxx; gregory.clement@xxxxxxxxxxx; thomas.petazzoni@xxxxxxxxxxxxxxxxxx Cc: linux-clk@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; kernel-janitors@xxxxxxxxxxxxxxx; 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@xxxxxxxxxx> --- 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