AW: [PATCH 1/4] clk: mvebu: Fix a memory leak in an error handling path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le 23/04/2021 à 13:42, Walter Harms a écrit :
nitpicking:
  clk_name could be replaced with cpuclk[cpu].clk_name

Agreed, Thx.
I'll wait a few days to see if there are other comments before sending a v2. (especially if 4/4 is correct or not)
I'll also add "clk-cpu:" after "clk: mvebu:"

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


But here, I don't follow you.
What do you mean? Which other patch?

Do you mean that the commit message has to be updated accordingly?
(ie: s/clk_name/cpuclk[cpu].clk_name/ must be freed)


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






[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux