mirror of https://gitee.com/openkylin/linux.git
ASoC: topology: Fix a potential NULL pointer dereference in 'soc_tplg_dapm_widget_denum_create()'
if 'se = kzalloc()' fails in the 'for' loop, we will branch to 'err'.
But in this case, 'kc[i].private_value' will still be NULL. A NULL pointer
dereference will then occur is the error handling path.
In such a case, it is safe to just 'continue' in order to skip this entry
and free the other ones.
Fixes: 1a7dd6e2f1
("ASoC: topology: Allow a widget to have multiple enum controls")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
f5fd4a67be
commit
6d5574ed5c
|
@ -1378,6 +1378,9 @@ static struct snd_kcontrol_new *soc_tplg_dapm_widget_denum_create(
|
|||
for (; i >= 0; i--) {
|
||||
/* free values and texts */
|
||||
se = (struct soc_enum *)kc[i].private_value;
|
||||
if (!se)
|
||||
continue;
|
||||
|
||||
kfree(se->dobj.control.dvalues);
|
||||
for (j = 0; j < ec->items; j++)
|
||||
kfree(se->dobj.control.dtexts[j]);
|
||||
|
|
Loading…
Reference in New Issue