[PATCH] ASoC: soc-utils: Check string pointer validity in snd_soc_dlc_is_dummy()
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Thu May 15 22:19:09 PDT 2025
Hi Chen-Yu
> In the recently added snd_soc_dlc_is_dummy(), the helper uses the .name
> and .dai_name fields without checking their validity.
>
> For .name, this field is NULL if the component is matched by .of_node
> instead. In fact, only one of these fields may be set. This caused a
> NULL pointer dereference on MediaTek MT8195 and MT8188 platforms with
> the subsequent conversion to snd_soc_dlc_is_dummy() in their machine
> drivers. The codecs are all matches through the device tree, so their
> .name fields are empty.
>
> For .dai_name, there are cases where this field is empty, such as for
> the following component definitions:
>
> #define COMP_EMPTY() { }
> #define COMP_PLATFORM(_name) { .name = _name }
> #define COMP_AUX(_name) { .name = _name }
> #define COMP_CODEC_CONF(_name) { .name = _name }
>
> Or the single link CPU DAI case in the simple audio card family, as
> covered by simple_util_canonicalize_cpu(), in which the .dai_name
> field is explicitly cleared.
>
> To fix this, check the validity of the fields before using them in
> string comparison.
>
> Fixes: 3e021f3b8115 ("ASoC: soc-utils: add snd_soc_dlc_is_dummy()")
> Cc: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> Signed-off-by: Chen-Yu Tsai <wenst at chromium.org>
> ---
Yes, indeed
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
Thank you for your help !!
Best regards
---
Kuninori Morimoto
More information about the Linux-mediatek
mailing list