ASoC: topology: Check widget kcontrols before deref.
[ Upstream commit 05bdcf1290 ]
Validate the topology input before we dereference the pointer.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ff3080bab1
commit
5f4bf078e7
@@ -510,7 +510,7 @@ static void remove_widget(struct snd_soc_component *comp,
|
||||
*/
|
||||
if (dobj->widget.kcontrol_type == SND_SOC_TPLG_TYPE_ENUM) {
|
||||
/* enumerated widget mixer */
|
||||
for (i = 0; i < w->num_kcontrols; i++) {
|
||||
for (i = 0; w->kcontrols != NULL && i < w->num_kcontrols; i++) {
|
||||
struct snd_kcontrol *kcontrol = w->kcontrols[i];
|
||||
struct soc_enum *se =
|
||||
(struct soc_enum *)kcontrol->private_value;
|
||||
@@ -528,7 +528,7 @@ static void remove_widget(struct snd_soc_component *comp,
|
||||
kfree(w->kcontrol_news);
|
||||
} else {
|
||||
/* volume mixer or bytes controls */
|
||||
for (i = 0; i < w->num_kcontrols; i++) {
|
||||
for (i = 0; w->kcontrols != NULL && i < w->num_kcontrols; i++) {
|
||||
struct snd_kcontrol *kcontrol = w->kcontrols[i];
|
||||
|
||||
if (dobj->widget.kcontrol_type
|
||||
|
||||
Reference in New Issue
Block a user