diff options
author | Ma Ke <make24@iscas.ac.cn> | 2024-08-08 06:13:55 +0200 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2024-08-23 18:05:44 +0200 |
commit | 1c38a62f15e595346a1106025722869e87ffe044 (patch) | |
tree | ff2e51b105f24dd84962092ea188bcd1c21e77b2 | |
parent | pinctrl: at91: make it work with current gpiolib (diff) | |
download | linux-1c38a62f15e595346a1106025722869e87ffe044.tar.xz linux-1c38a62f15e595346a1106025722869e87ffe044.zip |
pinctrl: single: fix potential NULL dereference in pcs_get_function()
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>
-rw-r--r-- | drivers/pinctrl/pinctrl-single.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c index 4c6bfabb6bd7..4da3c3f422b6 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c @@ -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", |