[PATCH] ASoC: imx-audmix: check return value of devm_kasprintf()

Shengjiu Wang shengjiu.wang at gmail.com
Mon Jun 19 12:14:33 AEST 2023


On Wed, Jun 14, 2023 at 8:15 PM Claudiu Beznea <claudiu.beznea at microchip.com>
wrote:

> devm_kasprintf() returns a pointer to dynamically allocated memory.
> Pointer could be NULL in case allocation fails. Check pointer validity.
> Identified with coccinelle (kmerr.cocci script).
>
> Fixes: b86ef5367761 ("ASoC: fsl: Add Audio Mixer machine driver")
> Signed-off-by: Claudiu Beznea <claudiu.beznea at microchip.com>
>

Acked-by: Shengjiu Wang <shengjiu.wang at gmail.com>

Best regards
Wang shengjiu

> ---
>
> Hi,
>
> This has been addressed using kmerr.cocci script proposed for update
> at [1].
>
> Thank you,
> Claudiu Beznea
>
> [1]
> https://lore.kernel.org/all/20230530074044.1603426-1-claudiu.beznea@microchip.com/
>
>  sound/soc/fsl/imx-audmix.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/sound/soc/fsl/imx-audmix.c b/sound/soc/fsl/imx-audmix.c
> index 2c57fe9d2d08..af06268ee57b 100644
> --- a/sound/soc/fsl/imx-audmix.c
> +++ b/sound/soc/fsl/imx-audmix.c
> @@ -228,6 +228,8 @@ static int imx_audmix_probe(struct platform_device
> *pdev)
>
>                 dai_name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%s%s",
>                                           fe_name_pref, args.np->full_name
> + 1);
> +               if (!dai_name)
> +                       return -ENOMEM;
>
>                 dev_info(pdev->dev.parent, "DAI FE name:%s\n", dai_name);
>
> @@ -236,6 +238,8 @@ static int imx_audmix_probe(struct platform_device
> *pdev)
>                         capture_dai_name =
>                                 devm_kasprintf(&pdev->dev, GFP_KERNEL, "%s
> %s",
>                                                dai_name, "CPU-Capture");
> +                       if (!capture_dai_name)
> +                               return -ENOMEM;
>                 }
>
>                 priv->dai[i].cpus = &dlc[0];
> @@ -263,6 +267,8 @@ static int imx_audmix_probe(struct platform_device
> *pdev)
>                                        "AUDMIX-Playback-%d", i);
>                 be_cp = devm_kasprintf(&pdev->dev, GFP_KERNEL,
>                                        "AUDMIX-Capture-%d", i);
> +               if (!be_name || !be_pb || !be_cp)
> +                       return -ENOMEM;
>
>                 priv->dai[num_dai + i].cpus = &dlc[2];
>                 priv->dai[num_dai + i].codecs = &dlc[3];
> @@ -287,6 +293,9 @@ static int imx_audmix_probe(struct platform_device
> *pdev)
>                 priv->dapm_routes[i].source =
>                         devm_kasprintf(&pdev->dev, GFP_KERNEL, "%s %s",
>                                        dai_name, "CPU-Playback");
> +               if (!priv->dapm_routes[i].source)
> +                       return -ENOMEM;
> +
>                 priv->dapm_routes[i].sink = be_pb;
>                 priv->dapm_routes[num_dai + i].source   = be_pb;
>                 priv->dapm_routes[num_dai + i].sink     = be_cp;
> --
> 2.34.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20230619/77f1bd02/attachment.htm>


More information about the Linuxppc-dev mailing list