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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 14, 2023 at 8:15 PM Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx>
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@xxxxxxxxxxxxx>
>

Acked-by: Shengjiu Wang <shengjiu.wang@xxxxxxxxx>

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@xxxxxxxxxxxxx/
>
>  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
>
>




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux