mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
ASoC: SOF: ipc4-topology: Fix input format query of process modules without base extension
commitffa077b2f6
upstream. If a process module does not have base config extension then the same format applies to all of it's inputs and the process->base_config_ext is NULL, causing NULL dereference when specifically crafted topology and sequences used. Fixes:648fea1284
("ASoC: SOF: ipc4-topology: set copier output format for process module") Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Cc: stable@vger.kernel.org Link: https://msgid.link/r/20240529121201.14687-1-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1c7891812d
commit
e3ae00ee23
@ -195,6 +195,14 @@ sof_ipc4_get_input_pin_audio_fmt(struct snd_sof_widget *swidget, int pin_index)
|
||||
}
|
||||
|
||||
process = swidget->private;
|
||||
|
||||
/*
|
||||
* For process modules without base config extension, base module config
|
||||
* format is used for all input pins
|
||||
*/
|
||||
if (process->init_config != SOF_IPC4_MODULE_INIT_CONFIG_TYPE_BASE_CFG_WITH_EXT)
|
||||
return &process->base_config.audio_fmt;
|
||||
|
||||
base_cfg_ext = process->base_config_ext;
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user