[PATCH v2] clk: scmi: fix invalid clock name references
Etienne Carriere
etienne.carriere at linaro.org
Tue Apr 26 10:55:43 CEST 2022
Dear all,
On Tue, 26 Apr 2022 at 09:52, Etienne Carriere
<etienne.carriere at linaro.org> wrote:
>
> 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 at coverity.com
> Signed-off-by: Etienne Carriere <etienne.carriere at linaro.org>
> ---
> Changes since v1:
> - Fix buggy test on strdup() return value
> ---
> 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..c8e10c4aea 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
>
I posted this change too quickly and missed something.
With this change, the clock name is duplicated twice since it's already
duplicated in caller function scmi_clk_probe().
Please discard this change. I'll send a v3 proposal to address the issue
in a more consistent way.
My apologies,
Etienne
More information about the U-Boot
mailing list