ASoC: topology: Fix using uninitialized pointer
authorJaska Uimonen <jaska.uimonen@linux.intel.com>
Wed, 19 May 2021 10:07:13 +0000 (13:07 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 20 May 2021 16:57:28 +0000 (17:57 +0100)
The original patch changed kcontrol_type to a pointer. In some goto
cases the pointer is assigned into a struct member as uninitialized and
this will cause a runtime error with UBSan even if it isn't a real bug.
So initialize the pointer to NULL.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: d29d41e28eea ("ASoC: topology: Add support for multiple kcontrol types to a widget")
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20210519100713.879958-1-jaska.uimonen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-topology.c

index e71d98d7b1167a2f4b2fc9af9c6f64106d659472..5e65b72910e98231da70797da50f0173381b2317 100644 (file)
@@ -1422,7 +1422,7 @@ static int soc_tplg_dapm_widget_create(struct soc_tplg *tplg,
        struct snd_soc_dapm_widget template, *widget;
        struct snd_soc_tplg_ctl_hdr *control_hdr;
        struct snd_soc_card *card = tplg->comp->card;
-       unsigned int *kcontrol_type;
+       unsigned int *kcontrol_type = NULL;
        struct snd_kcontrol_new *kc;
        int mixer_count = 0;
        int bytes_count = 0;