diff mbox series

[4/6] ASoC: Intel: sof_sdw: avoid crash if invalid DSP topology loaded

Message ID 20200717211337.31956-5-pierre-louis.bossart@linux.intel.com (mailing list archive)
State Accepted
Commit 6b540ac763e9d11506ec1eb6b0fadc70292bb4a6
Headers show
Series ASoC: Intel: machine driver updates for 5.9 | expand

Commit Message

Pierre-Louis Bossart July 17, 2020, 9:13 p.m. UTC
From: Kai Vehmanen <kai.vehmanen@linux.intel.com>

The mc_private->hdmi_pcm_list is populated by elements loaded during
DSP topology load. Valid topologies for this machine driver will always
have PCM nodes for HDMI, but driver should fail gracefully even in the case
this is not true. Add a sanity check to sof_sdw_hdmi_card_late_probe()
for this case. Without the fix, a null pcm handle gets dereferenced.

Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 sound/soc/intel/boards/sof_sdw_hdmi.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/sound/soc/intel/boards/sof_sdw_hdmi.c b/sound/soc/intel/boards/sof_sdw_hdmi.c
index 72316d34eed6..99b04bb2f3a0 100644
--- a/sound/soc/intel/boards/sof_sdw_hdmi.c
+++ b/sound/soc/intel/boards/sof_sdw_hdmi.c
@@ -55,6 +55,9 @@  int sof_sdw_hdmi_card_late_probe(struct snd_soc_card *card)
 	if (!ctx->idisp_codec)
 		return 0;
 
+	if (list_empty(&ctx->hdmi_pcm_list))
+		return -EINVAL;
+
 	pcm = list_first_entry(&ctx->hdmi_pcm_list, struct hdmi_pcm,
 			       head);
 	component = pcm->codec_dai->component;