Unverified Commit 2f78724d authored by Cezary Rojewski's avatar Cezary Rojewski Committed by Mark Brown
Browse files

ASoC: Intel: avs: Fix possible null-ptr-deref when initing hw



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: f2f84746 ("ASoC: Intel: avs: Constrain path based on BE capabilities")
Reviewed-by: default avatarAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: default avatarCezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20250530141025.2942936-5-cezary.rojewski@intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 347c8d6d
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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;