Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f64558b authored by Claudiu Beznea's avatar Claudiu Beznea Committed by Greg Kroah-Hartman
Browse files

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



[ Upstream commit 2f76e1d6ca524a888d29aafe29f2ad2003857971 ]

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: b86ef536 ("ASoC: fsl: Add Audio Mixer machine driver")
Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20230614121509.443926-1-claudiu.beznea@microchip.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 35455616
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -230,6 +230,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);

@@ -238,6 +240,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];
@@ -268,6 +272,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[3];
		priv->dai[num_dai + i].codecs = &dlc[4];
@@ -295,6 +301,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;