]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pinctrl: thead1520: Fix Null pointer dereference
authorclingfei <clf700383@gmail.com>
Thu, 3 Oct 2024 02:33:07 +0000 (10:33 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 3 Oct 2024 14:07:12 +0000 (16:07 +0200)
pinmux_generic_get_function may return NULL, and its retval is
dereferenced without check, which will cause a NULL pointer
dereference.

Signed-off-by: clingfei <clf700383@gmail.com>
Reviewed-by: Drew Fustini <dfustini@tenstorrent.com>
Link: https://lore.kernel.org/20241003023307.2138695-1-clf700383@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-th1520.c

index 1bb78b212fd505cc20ac8186712c887c133921b4..9331f44624809812e80e00b36d102fc698204b0d 100644 (file)
@@ -798,6 +798,8 @@ 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);
 
+       if (!func)
+               return -EINVAL;
        return th1520_pinmux_set(thp, thp->desc.pins[gsel].number,
                                 (uintptr_t)thp->desc.pins[gsel].drv_data & TH1520_PAD_MUXDATA,
                                 (uintptr_t)func->data);