pinctrl: single: fix potential NULL dereference in pcs_get_function()
authorMa Ke <make24@iscas.ac.cn>
Thu, 8 Aug 2024 04:13:55 +0000 (12:13 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 23 Aug 2024 16:05:44 +0000 (18:05 +0200)
pinmux_generic_get_function() can return NULL and the pointer 'function'
was dereferenced without checking against NULL. Add checking of pointer
'function' in pcs_get_function().

Found by code review.

Cc: stable@vger.kernel.org
Fixes: 571aec4df5b7 ("pinctrl: single: Use generic pinmux helpers for managing functions")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Link: https://lore.kernel.org/20240808041355.2766009-1-make24@iscas.ac.cn
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-single.c

index 4c6bfab..4da3c3f 100644 (file)
@@ -345,6 +345,8 @@ static int pcs_get_function(struct pinctrl_dev *pctldev, unsigned pin,
                return -ENOTSUPP;
        fselector = setting->func;
        function = pinmux_generic_get_function(pctldev, fselector);
+       if (!function)
+               return -EINVAL;
        *func = function->data;
        if (!(*func)) {
                dev_err(pcs->dev, "%s could not find function%i\n",