mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 13:03:25 +01:00
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: b359760d95
("ASoC: intel: sof_sdw: Add simple DAI link creation helper")
Signed-off-by: Charles Han <hanchunchao@inspur.com>
Link: https://patch.msgid.link/20240925080030.11262-1-hanchunchao@inspur.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
47d7d3fd72
commit
2c0b2b484b
1 changed files with 12 additions and 0 deletions
|
@ -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 *codec_name = devm_kasprintf(dev, GFP_KERNEL, "i2c-%s:0%d",
|
||||
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 capture = ssp_info->dais[0].direction[SNDRV_PCM_STREAM_CAPTURE];
|
||||
|
||||
|
@ -866,6 +869,9 @@ static int create_hdmi_dailinks(struct snd_soc_card *card,
|
|||
for (i = 0; i < hdmi_num; i++) {
|
||||
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);
|
||||
if (!name || !cpu_dai_name)
|
||||
return -ENOMEM;
|
||||
|
||||
char *codec_name, *codec_dai_name;
|
||||
|
||||
if (intel_ctx->hdmi.idisp_codec) {
|
||||
|
@ -877,6 +883,9 @@ static int create_hdmi_dailinks(struct snd_soc_card *card,
|
|||
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,
|
||||
1, 0, // HDMI only supports playback
|
||||
cpu_dai_name, platform_component->name,
|
||||
|
@ -900,6 +909,9 @@ static int create_bt_dailinks(struct snd_soc_card *card,
|
|||
SOF_BT_OFFLOAD_SSP_SHIFT;
|
||||
char *name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-BT", port);
|
||||
char *cpu_dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", port);
|
||||
if (!name || !cpu_dai_name)
|
||||
return -ENOMEM;
|
||||
|
||||
int ret;
|
||||
|
||||
ret = asoc_sdw_init_simple_dai_link(dev, *dai_links, be_id, name,
|
||||
|
|
Loading…
Reference in a new issue