ASoC: core: Fix access to uninitialized list heads
authorTakashi Iwai <tiwai@suse.de>
Wed, 4 Dec 2019 15:14:54 +0000 (16:14 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 24 Dec 2019 23:56:15 +0000 (23:56 +0000)
commit07d22a9bb623714dc3199099c5cce3df6aef496c
tree91537a1b83a67aaa9fd3ff0709ebde701a60248b
parent218fe9b7ec7f32c10a07539365488d80af7b0084
ASoC: core: Fix access to uninitialized list heads

The error path of soc_new_pcm_runtime() invokes soc_free_pcm_runtime()
that may cause a few problems.  First off, it calls list_del() for
rtd->list that may not be initialized.  Similarly,
snd_soc_pcm_component_free() traverses over the component list that
may not be initialized, either.  Such access to the uninitialized list
head would lead to either a BUG_ON() or a memory corruption.

This patch fixes the access to uninitialized list heads by
initializing the list heads properly at the beginning before those
error paths.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191204151454.21643-1-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-core.c