Commit 05214b06 authored by Colin Ian King's avatar Colin Ian King Committed by Linus Walleij
Browse files

pinctrl: th1520: Fix potential null pointer dereference on func



The initialization of muxtype deferences pointer func before func
is sanity checked with a null pointer check, hence we have a null
pointer deference issue. Fix this by only deferencing func with
the assignment to muxtype after func has been null pointer checked.

Fixes: 1fc30cd9 ("pinctrl: th1520: Factor out casts")
Signed-off-by: default avatarColin Ian King <colin.i.king@gmail.com>
Reported-by: default avatarKees Bakker <kees@ijzerbout.nl>
Acked-by: default avatarDrew Fustini <dfustini@tenstorrent.com>
Link: https://lore.kernel.org/20241016155655.334518-1-colin.i.king@gmail.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 22c91825
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -803,11 +803,12 @@ static int th1520_pinmux_set_mux(struct pinctrl_dev *pctldev,
{
	struct th1520_pinctrl *thp = pinctrl_dev_get_drvdata(pctldev);
	const struct function_desc *func = pinmux_generic_get_function(pctldev, fsel);
	enum th1520_muxtype muxtype = (uintptr_t)func->data;
	enum th1520_muxtype muxtype;

	if (!func)
		return -EINVAL;

	muxtype = (uintptr_t)func->data;
	return th1520_pinmux_set(thp, thp->desc.pins[gsel].number,
				 th1520_pad_muxdata(thp->desc.pins[gsel].drv_data),
				 muxtype);