diff options
author | Heinrich Schuchardt <heinrich.schuchardt@canonical.com> | 2022-04-26 23:26:31 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-05-05 19:37:11 -0400 |
commit | d6577668196a130787291682ff9202721396ec1b (patch) | |
tree | 5f63753162db219885f33678ebba60a720f36445 | |
parent | 616571804a01f032bc43fa4fdeb42f00cb90513c (diff) | |
download | u-boot-d6577668196a130787291682ff9202721396ec1b.tar.gz |
clk: scmi: fix scmi_clk_get_attibute()
Local variable out.name lives on the stack and therefore cannot
be returned directly. Move the strdup() call into the function.
(Coverity 352460)
Fixes: 7c33f78983c3 ("clk: scmi: register scmi clocks with CCF")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
-rw-r--r-- | drivers/clk/clk_scmi.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c index 57022685e23..5aaabcf0b44 100644 --- a/drivers/clk/clk_scmi.c +++ b/drivers/clk/clk_scmi.c @@ -53,7 +53,7 @@ static int scmi_clk_get_attibute(struct udevice *dev, int clkid, char **name) if (ret) return ret; - *name = out.clock_name; + *name = strdup(out.clock_name); return 0; } @@ -152,11 +152,9 @@ static int scmi_clk_probe(struct udevice *dev) return ret; for (i = 0; i < num_clocks; i++) { - char *name; - - if (!scmi_clk_get_attibute(dev, i, &name)) { - char *clock_name = strdup(name); + char *clock_name; + if (!scmi_clk_get_attibute(dev, i, &clock_name)) { clk = kzalloc(sizeof(*clk), GFP_KERNEL); if (!clk || !clock_name) ret = -ENOMEM; |