ASoC: topology: Fix a potential memory leak in 'soc_tplg_dapm_widget_denum_create()'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Thu, 14 Sep 2017 20:44:24 +0000 (22:44 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 14 Sep 2017 21:13:03 +0000 (14:13 -0700)
If this sanity check fails, we must free the memory that has already been
allocated.

So we must go to 'err' as in the other error handling parth of this
function.

Fixes: 1a7dd6e2f192 ("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>
sound/soc/soc-topology.c

index 2499b54a57e82cf0b7091637b4c513052ad71c7c..01a50413c66f6612762791b2d1d905b077eb87a2 100644 (file)
@@ -1301,7 +1301,7 @@ static struct snd_kcontrol_new *soc_tplg_dapm_widget_denum_create(
                /* validate kcontrol */
                if (strnlen(ec->hdr.name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN) ==
                            SNDRV_CTL_ELEM_ID_NAME_MAXLEN)
                /* validate kcontrol */
                if (strnlen(ec->hdr.name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN) ==
                            SNDRV_CTL_ELEM_ID_NAME_MAXLEN)
-                       return NULL;
+                       goto err;
 
                se = kzalloc(sizeof(*se), GFP_KERNEL);
                if (se == NULL)
 
                se = kzalloc(sizeof(*se), GFP_KERNEL);
                if (se == NULL)