Commit 2c0b2b48 authored by Charles Han's avatar Charles Han Committed by Mark Brown

ASoC: intel: sof_sdw: Add check devm_kasprintf() returned value

devm_kasprintf() can return a NULL pointer on failure but this
returned value is not checked.

Fixes: b359760d ("ASoC: intel: sof_sdw: Add simple DAI link creation helper")
Signed-off-by: default avatarCharles Han <hanchunchao@inspur.com>
Link: https://patch.msgid.link/20240925080030.11262-1-hanchunchao@inspur.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 47d7d3fd
...@@ -800,6 +800,9 @@ static int create_ssp_dailinks(struct snd_soc_card *card, ...@@ -800,6 +800,9 @@ static int create_ssp_dailinks(struct snd_soc_card *card,
char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", i); char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", i);
char *codec_name = devm_kasprintf(dev, GFP_KERNEL, "i2c-%s:0%d", char *codec_name = devm_kasprintf(dev, GFP_KERNEL, "i2c-%s:0%d",
ssp_info->acpi_id, j++); ssp_info->acpi_id, j++);
if (!name || !cpu_dai_name || !codec_name)
return -ENOMEM;
int playback = ssp_info->dais[0].direction[SNDRV_PCM_STREAM_PLAYBACK]; int playback = ssp_info->dais[0].direction[SNDRV_PCM_STREAM_PLAYBACK];
int capture = ssp_info->dais[0].direction[SNDRV_PCM_STREAM_CAPTURE]; int capture = ssp_info->dais[0].direction[SNDRV_PCM_STREAM_CAPTURE];
...@@ -866,6 +869,9 @@ static int create_hdmi_dailinks(struct snd_soc_card *card, ...@@ -866,6 +869,9 @@ static int create_hdmi_dailinks(struct snd_soc_card *card,
for (i = 0; i < hdmi_num; i++) { for (i = 0; i < hdmi_num; i++) {
char *name = devm_kasprintf(dev, GFP_KERNEL, "iDisp%d", i + 1); char *name = devm_kasprintf(dev, GFP_KERNEL, "iDisp%d", i + 1);
char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "iDisp%d Pin", i + 1); char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "iDisp%d Pin", i + 1);
if (!name || !cpu_dai_name)
return -ENOMEM;
char *codec_name, *codec_dai_name; char *codec_name, *codec_dai_name;
if (intel_ctx->hdmi.idisp_codec) { if (intel_ctx->hdmi.idisp_codec) {
...@@ -877,6 +883,9 @@ static int create_hdmi_dailinks(struct snd_soc_card *card, ...@@ -877,6 +883,9 @@ static int create_hdmi_dailinks(struct snd_soc_card *card,
codec_dai_name = "snd-soc-dummy-dai"; codec_dai_name = "snd-soc-dummy-dai";
} }
if (!codec_dai_name)
return -ENOMEM;
ret = asoc_sdw_init_simple_dai_link(dev, *dai_links, be_id, name, ret = asoc_sdw_init_simple_dai_link(dev, *dai_links, be_id, name,
1, 0, // HDMI only supports playback 1, 0, // HDMI only supports playback
cpu_dai_name, platform_component->name, cpu_dai_name, platform_component->name,
...@@ -900,6 +909,9 @@ static int create_bt_dailinks(struct snd_soc_card *card, ...@@ -900,6 +909,9 @@ static int create_bt_dailinks(struct snd_soc_card *card,
SOF_BT_OFFLOAD_SSP_SHIFT; SOF_BT_OFFLOAD_SSP_SHIFT;
char *name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-BT", port); char *name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-BT", port);
char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", port); char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", port);
if (!name || !cpu_dai_name)
return -ENOMEM;
int ret; int ret;
ret = asoc_sdw_init_simple_dai_link(dev, *dai_links, be_id, name, ret = asoc_sdw_init_simple_dai_link(dev, *dai_links, be_id, name,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment