diff options
author | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | 2023-07-31 16:37:43 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-07-31 23:22:14 +0100 |
commit | 55cb3dc271d81f1982c949a2ac483a6daf613b92 (patch) | |
tree | 55e222148a189522ff04d4a4404a331697b66b22 /sound | |
parent | e44222c213678d6ef646d72cbb9a2eda52f6dc22 (diff) | |
download | linux-stable-55cb3dc271d81f1982c949a2ac483a6daf613b92.tar.gz linux-stable-55cb3dc271d81f1982c949a2ac483a6daf613b92.tar.bz2 linux-stable-55cb3dc271d81f1982c949a2ac483a6daf613b92.zip |
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: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Yaochun Hung <yc.hung@mediatek.com>
Link: https://lore.kernel.org/r/20230731213748.440285-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/sof/topology.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c index 698129dccc7d..3866dd3cba69 100644 --- a/sound/soc/sof/topology.c +++ b/sound/soc/sof/topology.c @@ -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_pcm_runtime *rtd; + const char *sname = w->sname; struct snd_soc_dai *cpu_dai; int i, stream; - if (!w->sname) + if (!sname) return; if (w->id == snd_soc_dapm_dai_out) @@ -1133,7 +1134,7 @@ static void sof_disconnect_dai_widget(struct snd_soc_component *scomp, list_for_each_entry(rtd, &card->rtd_list, list) { /* does stream match DAI link ? */ if (!rtd->dai_link->stream_name || - strcmp(w->sname, rtd->dai_link->stream_name)) + strcmp(sname, rtd->dai_link->stream_name)) continue; for_each_rtd_cpu_dais(rtd, i, cpu_dai) |