Commit 55cb3dc2 authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Mark Brown

ASoC: SOF: topology: simplify code to prevent static analysis warnings

make KCFLAGS='-fanalyzer' sound/soc/sof/intel/ reports a possible NULL
pointer dereference.

sound/soc/sof/topology.c:1136:21: error: dereference of NULL ‘w’
[CWE-476] [-Werror=analyzer-null-dereference]

 1136 |     strcmp(w->sname, rtd->dai_link->stream_name))

The code is rather confusing and can be simplified to make static
analysis happy. No functionality change.
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: default avatarRander Wang <rander.wang@intel.com>
Reviewed-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: default avatarYaochun Hung <yc.hung@mediatek.com>
Link: https://lore.kernel.org/r/20230731213748.440285-4-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent e44222c2
...@@ -1117,10 +1117,11 @@ static void sof_disconnect_dai_widget(struct snd_soc_component *scomp, ...@@ -1117,10 +1117,11 @@ static void sof_disconnect_dai_widget(struct snd_soc_component *scomp,
{ {
struct snd_soc_card *card = scomp->card; struct snd_soc_card *card = scomp->card;
struct snd_soc_pcm_runtime *rtd; struct snd_soc_pcm_runtime *rtd;
const char *sname = w->sname;
struct snd_soc_dai *cpu_dai; struct snd_soc_dai *cpu_dai;
int i, stream; int i, stream;
if (!w->sname) if (!sname)
return; return;
if (w->id == snd_soc_dapm_dai_out) if (w->id == snd_soc_dapm_dai_out)
...@@ -1133,7 +1134,7 @@ static void sof_disconnect_dai_widget(struct snd_soc_component *scomp, ...@@ -1133,7 +1134,7 @@ static void sof_disconnect_dai_widget(struct snd_soc_component *scomp,
list_for_each_entry(rtd, &card->rtd_list, list) { list_for_each_entry(rtd, &card->rtd_list, list) {
/* does stream match DAI link ? */ /* does stream match DAI link ? */
if (!rtd->dai_link->stream_name || if (!rtd->dai_link->stream_name ||
strcmp(w->sname, rtd->dai_link->stream_name)) strcmp(sname, rtd->dai_link->stream_name))
continue; continue;
for_each_rtd_cpu_dais(rtd, i, cpu_dai) for_each_rtd_cpu_dais(rtd, i, cpu_dai)
......
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