summaryrefslogtreecommitdiff
path: root/drivers/clk
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2022-04-26 23:26:31 +0200
committerTom Rini <trini@konsulko.com>2022-05-05 19:37:11 -0400
commitd6577668196a130787291682ff9202721396ec1b (patch)
tree5f63753162db219885f33678ebba60a720f36445 /drivers/clk
parent616571804a01f032bc43fa4fdeb42f00cb90513c (diff)
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>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/clk_scmi.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
index 57022685e2..5aaabcf0b4 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;