diff options
author | Cezary Rojewski <cezary.rojewski@intel.com> | 2022-12-08 15:26:35 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2022-12-09 09:54:53 +0100 |
commit | 084ca216931ab9313e6fb862c2ec9ec5e0702cd5 (patch) | |
tree | 4d539caa866358c6fd625b06e80d79fa58bd576f | |
parent | a587601b55df505f38b18832d941e47dbbf084ce (diff) |
ALSA: hda: Error out if invalid stream is being setup
Scenario when snd_hdac_stream_setup_periods() receives an instance of
struct hdac_stream with neither ->substream nor ->cstream initialized is
invalid.
Simultaneously addresses "uninitialized symbol 'dmab'" error reported by
Smatch.
Fixes: 3e9582267e3a ("ALSA: hda: Interrupt servicing and BDL setup for compress streams")
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20221208142635.1514944-1-cezary.rojewski@intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/hda/hdac_stream.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c index 8f625402505f..547adbc22590 100644 --- a/sound/hda/hdac_stream.c +++ b/sound/hda/hdac_stream.c @@ -500,6 +500,9 @@ int snd_hdac_stream_setup_periods(struct hdac_stream *azx_dev) dmab = snd_pcm_get_dma_buf(substream); } else if (cstream) { dmab = snd_pcm_get_dma_buf(cstream); + } else { + WARN(1, "No substream or cstream assigned\n"); + return -EINVAL; } /* reset BDL address */ |