All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] clk: scmi: fix invalid clock name references
@ 2022-04-26  7:49 Etienne Carriere
  0 siblings, 0 replies; only message in thread
From: Etienne Carriere @ 2022-04-26  7:49 UTC (permalink / raw)
  To: u-boot
  Cc: Lukasz Majewski, Sean Anderson, Patrick Delaunay,
	Gabriel Fernandez, Etienne Carriere

Fixes clock name references in scmi_clk driver. SCMI clock names are
retrieved from the SCMI firmware by invoking SCMI commands using the
stack for SCMI response message hence clocks names located in the
stack must be duplicated before being registered in the clock framework.

Fixes: 7c33f78983c3 ("clk: scmi: register scmi clocks with CCF")
Reported-by: scan-admin@coverity.com
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
---
 drivers/clk/clk_scmi.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
index 57022685e2..5019aacef9 100644
--- a/drivers/clk/clk_scmi.c
+++ b/drivers/clk/clk_scmi.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (C) 2019-2020 Linaro Limited
+ * Copyright (C) 2019-2022 Linaro Limited
  */
 
 #define LOG_CATEGORY UCLASS_CLK
@@ -12,6 +12,7 @@
 #include <scmi_protocols.h>
 #include <asm/types.h>
 #include <linux/clk-provider.h>
+#include <linux/string.h>
 
 static int scmi_clk_get_num_clock(struct udevice *dev, size_t *num_clocks)
 {
@@ -53,7 +54,9 @@ 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);
+	if (*name)
+		return -ENOMEM;
 
 	return 0;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-26  7:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-26  7:49 [PATCH] clk: scmi: fix invalid clock name references Etienne Carriere

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.