Re: [PATCH] ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init

From: Ahmad Fatoum
Date: Tue Nov 21 2023 - 04:38:26 EST


Hello Kunwu,

On 21.11.23 10:25, Kunwu Chan wrote:
> devm_kasprintf() returns a pointer to dynamically allocated memory
> which can be NULL upon failure. Ensure the allocation was successful
> by checking the pointer validity.
>
> Fixes: ebeb49f43c89 ("ARM: imx: Call ida_simple_remove() for ida_simple_get")

This commit only moves the allocation around, but it didn't introduce it.
Please reference the first commit that added the allocation.

> Signed-off-by: Kunwu Chan <chentao@xxxxxxxxxx>
> ---
> arch/arm/mach-imx/mmdc.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c
> index 2157493b78a9..7c471d6a851d 100644
> --- a/arch/arm/mach-imx/mmdc.c
> +++ b/arch/arm/mach-imx/mmdc.c
> @@ -501,6 +501,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
>
> name = devm_kasprintf(&pdev->dev,
> GFP_KERNEL, "mmdc%d", ret);
> + if (!name) {
> + ret = -ENOMEM;
> + goto pmu_free;

Cleanup is incomplete if you goto pmu_free, e.g. ida_simple_remove()
isn't called. pmu_register_err does too much cleanup, so you'll need
to add a new cleanup label.

Cheers,
Ahmad


> + }
>
> pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
> pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |