ASoC: Intel: avs: Fix possible null-ptr-deref when initing hw
authorCezary Rojewski <cezary.rojewski@intel.com>
Fri, 30 May 2025 14:10:20 +0000 (16:10 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 2 Jun 2025 11:26:47 +0000 (12:26 +0100)
Search result of avs_dai_find_path_template() shall be verified before
being used. As 'template' is already known when
avs_hw_constraints_init() is fired, drop the search entirely.

Fixes: f2f847461fb7 ("ASoC: Intel: avs: Constrain path based on BE capabilities")
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20250530141025.2942936-5-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/avs/pcm.c

index d1acc636add79a1b93761615c42d8dc205e41673..ccf90428126d8ca674277ba471512633cd777195 100644 (file)
@@ -83,10 +83,8 @@ void avs_period_elapsed(struct snd_pcm_substream *substream)
 static int hw_rule_param_size(struct snd_pcm_hw_params *params, struct snd_pcm_hw_rule *rule);
 static int avs_hw_constraints_init(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
 {
-       struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
        struct snd_pcm_runtime *runtime = substream->runtime;
        struct snd_pcm_hw_constraint_list *r, *c, *s;
-       struct avs_tplg_path_template *template;
        struct avs_dma_data *data;
        int ret;
 
@@ -99,8 +97,7 @@ static int avs_hw_constraints_init(struct snd_pcm_substream *substream, struct s
        c = &(data->channels_list);
        s = &(data->sample_bits_list);
 
-       template = avs_dai_find_path_template(dai, !rtd->dai_link->no_pcm, substream->stream);
-       ret = avs_path_set_constraint(data->adev, template, r, c, s);
+       ret = avs_path_set_constraint(data->adev, data->template, r, c, s);
        if (ret <= 0)
                return ret;