[alsa-devel] [bug report] ASoC: meson: axg-card: fix null pointer dereference in clean up

Jerome Brunet jbrunet at baylibre.com
Wed Jun 19 08:58:46 CEST 2019


On Tue, 2019-06-18 at 14:07 +0300, Dan Carpenter wrote:
> Hello Jerome Brunet,
> 
> The patch 960f428ca0a0: "ASoC: meson: axg-card: fix null pointer
> dereference in clean up" from Jun 10, 2019, leads to the following
> static checker warning:
> 
> 	sound/soc/meson/axg-card.c:121 axg_card_clean_references()
> 	warn: address of 'link->codecs[j]' is non-NULL
> 
> sound/soc/meson/axg-card.c
>    109  static void axg_card_clean_references(struct axg_card *priv)
>    110  {
>    111          struct snd_soc_card *card = &priv->card;
>    112          struct snd_soc_dai_link *link;
>    113          struct snd_soc_dai_link_component *codec;
>    114          int i, j;
>    115  
>    116          if (card->dai_link) {
>    117                  for_each_card_prelinks(card, i, link) {
>    118                          if (link->cpus)
>    119                                  of_node_put(link->cpus->of_node);
>    120                          for_each_link_codecs(link, j, codec)
>    121                                  if (codec)
>                                             ^^^^^
> "codec" is the list iterator so it can't possibly be NULL.

Indeed, only "cpus" need a check.
Thanks for reporting this Dan
I'll post a fixup soon 

> 
>    122                                          of_node_put(codec->of_node);
>    123                  }
>    124          }
>    125  
>    126          if (card->aux_dev) {
>    127                  for (i = 0; i < card->num_aux_devs; i++)
>    128                          of_node_put(card->aux_dev[i].codec_of_node);
>    129          }
>    130  
>    131          kfree(card->dai_link);
>    132          kfree(priv->link_data);
>    133  }
> 
> regards,
> dan carpenter




More information about the Alsa-devel mailing list