[PATCH 5/6] ASoC: samsung: tm2_wm5110: check of_parse return value
Krzysztof Kozlowski
krzk at kernel.org
Sun Feb 21 12:10:55 CET 2021
On Fri, Feb 19, 2021 at 05:09:17PM -0600, Pierre-Louis Bossart wrote:
> cppcheck warning:
>
> sound/soc/samsung/tm2_wm5110.c:605:6: style: Variable 'ret' is
> reassigned a value before the old one has been
> used. [redundantAssignment]
> ret = devm_snd_soc_register_component(dev, &tm2_component,
> ^
> sound/soc/samsung/tm2_wm5110.c:554:7: note: ret is assigned
> ret = of_parse_phandle_with_args(dev->of_node, "i2s-controller",
> ^
> sound/soc/samsung/tm2_wm5110.c:605:6: note: ret is overwritten
> ret = devm_snd_soc_register_component(dev, &tm2_component,
> ^
>
> it seems wise to first test the return value before checking if the
> returned argument is not null?
Actually this is real bug. The args is a stack variable, so it could
have junk (uninitialized) therefore args.np could have a non-NULL and
random value even though property was missing. Later could trigger
invalid pointer dereference.
Fixes: 8d1513cef51a ("ASoC: samsung: Add support for HDMI audio on TM2 board")
Cc: <stable at vger.kernel.org>
>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> ---
> sound/soc/samsung/tm2_wm5110.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/soc/samsung/tm2_wm5110.c b/sound/soc/samsung/tm2_wm5110.c
> index 9300fef9bf26..da6204248f82 100644
> --- a/sound/soc/samsung/tm2_wm5110.c
> +++ b/sound/soc/samsung/tm2_wm5110.c
> @@ -553,7 +553,7 @@ static int tm2_probe(struct platform_device *pdev)
>
> ret = of_parse_phandle_with_args(dev->of_node, "i2s-controller",
> cells_name, i, &args);
> - if (!args.np) {
> + if (ret || !args.np) {
Only "if (ret)" because args.np won't be initialized on errors.
Best regards,
Krzysztof
More information about the Alsa-devel
mailing list