Re: [PATCH] ASoC: SOF: ipc4-pcm: Adjust pipeline_list->pipelines allocation type

On 26/04/2025 09:25, Kees Cook wrote:
In preparation for making the kmalloc family of allocators type aware, we need to make sure that the returned type from the allocation matches the type of the variable being assigned. (Before, the allocator would always return "void *", which can be implicitly cast to any pointer type.)
The assigned type is "struct snd_sof_pipeline **", but the returned type will be "struct snd_sof_widget **". These are the same size allocation (pointer size) but the types don't match. Adjust the allocation type to match the assignment.
It looks like that this is indeed an oversight and a bug introduced by a mostly mechanical change (introduced in v6.3).
Can you add: Fixes: 9c04363d222b ("ASoC: SOF: Introduce struct snd_sof_pipeline")
and: Acked-by: Peter Ujfalusi peter.ujfalusi@linux.intel.com
Signed-off-by: Kees Cook kees@kernel.org
Cc: Liam Girdwood lgirdwood@gmail.com Cc: Peter Ujfalusi peter.ujfalusi@linux.intel.com Cc: Bard Liao yung-chuan.liao@linux.intel.com Cc: Ranjani Sridharan ranjani.sridharan@linux.intel.com Cc: Daniel Baluta daniel.baluta@nxp.com Cc: Kai Vehmanen kai.vehmanen@linux.intel.com Cc: Pierre-Louis Bossart pierre-louis.bossart@linux.dev Cc: Mark Brown broonie@kernel.org Cc: Jaroslav Kysela perex@perex.cz Cc: Takashi Iwai tiwai@suse.com Cc: sound-open-firmware@alsa-project.org Cc: linux-sound@vger.kernel.org
sound/soc/sof/ipc4-pcm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/sof/ipc4-pcm.c b/sound/soc/sof/ipc4-pcm.c index 1a2841899ff5..52903503cf3b 100644 --- a/sound/soc/sof/ipc4-pcm.c +++ b/sound/soc/sof/ipc4-pcm.c @@ -784,7 +784,8 @@ static int sof_ipc4_pcm_setup(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm
/* allocate memory for max number of pipeline IDs */ pipeline_list->pipelines = kcalloc(ipc4_data->max_num_pipelines,
sizeof(struct snd_sof_widget *), GFP_KERNEL);
sizeof(*pipeline_list->pipelines),
if (!pipeline_list->pipelines) { sof_ipc4_pcm_free(sdev, spcm); return -ENOMEM;GFP_KERNEL);
participants (1)
-
Péter Ujfalusi