ASoC: SOF: topology: simplify code to prevent static analysis warnings
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Mon, 31 Jul 2023 21:37:43 +0000 (16:37 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Sep 2023 09:11:04 +0000 (11:11 +0200)
[ Upstream commit 55cb3dc271d81f1982c949a2ac483a6daf613b92 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/sof/topology.c

index 872e444..e7305ce 100644 (file)
@@ -1086,16 +1086,17 @@ 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;
 
-       if (!w->sname)
+       if (!sname)
                return;
 
        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;
 
                switch (w->id) {