]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: SOF: Intel: hda: Place check before dereference
authorEthan Tidmore <ethantidmore06@gmail.com>
Tue, 24 Mar 2026 17:38:30 +0000 (12:38 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 31 Mar 2026 15:54:50 +0000 (16:54 +0100)
The struct hext_stream is dereferenced before it is checked for NULL.
Although it can never be NULL due to a check prior to
hda_dsp_iccmax_stream_hw_params() being called, this change clears any
confusion regarding hext_stream possibly being NULL.

Check hext_stream for NULL and then assign its members.

Detected by Smatch:
sound/soc/sof/intel/hda-stream.c:488 hda_dsp_iccmax_stream_hw_params() warn:
variable dereferenced before check 'hext_stream' (see line 486)

Fixes: aca961f196e5d ("ASoC: SOF: Intel: hda: Add helper function to program ICCMAX stream")
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
Link: https://patch.msgid.link/20260324173830.17563-1-ethantidmore06@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-stream.c

index 1c04b5d9c0d8b6c6a306de57691814cb3676336b..5c1f3b427cdb86f25dc383be0e90ef64479ed4ca 100644 (file)
@@ -480,16 +480,20 @@ int hda_dsp_iccmax_stream_hw_params(struct snd_sof_dev *sdev, struct hdac_ext_st
                                    struct snd_dma_buffer *dmab,
                                    struct snd_pcm_hw_params *params)
 {
-       struct hdac_stream *hstream = &hext_stream->hstream;
-       int sd_offset = SOF_STREAM_SD_OFFSET(hstream);
+       struct hdac_stream *hstream;
+       int sd_offset;
        int ret;
-       u32 mask = 0x1 << hstream->index;
+       u32 mask;
 
        if (!hext_stream) {
                dev_err(sdev->dev, "error: no stream available\n");
                return -ENODEV;
        }
 
+       hstream = &hext_stream->hstream;
+       sd_offset = SOF_STREAM_SD_OFFSET(hstream);
+       mask = 0x1 << hstream->index;
+
        if (!dmab) {
                dev_err(sdev->dev, "error: no dma buffer allocated!\n");
                return -ENODEV;