diff options
author | Maxim Korotkov <korotkov.maxim.s@gmail.com> | 2022-11-18 13:43:32 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-02-22 12:47:18 +0100 |
commit | e671e63587c92b3fd767cf82e73129f6d5feeb33 (patch) | |
tree | a346ab58f5311f3a8d82eb1382bcb71e3846e5a6 | |
parent | e5f3ce32f130ba706b32ed7134c36b05ae7c1be5 (diff) | |
download | linux-stable-e671e63587c92b3fd767cf82e73129f6d5feeb33.tar.gz linux-stable-e671e63587c92b3fd767cf82e73129f6d5feeb33.tar.bz2 linux-stable-e671e63587c92b3fd767cf82e73129f6d5feeb33.zip |
pinctrl: single: fix potential NULL dereference
[ Upstream commit d2d73e6d4822140445ad4a7b1c6091e0f5fe703b ]
Added checking of pointer "function" in pcs_set_mux().
pinmux_generic_get_function() can return NULL and the pointer
"function" was dereferenced without checking against NULL.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 571aec4df5b7 ("pinctrl: single: Use generic pinmux helpers for managing functions")
Signed-off-by: Maxim Korotkov <korotkov.maxim.s@gmail.com>
Reviewed-by: Tony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20221118104332.943-1-korotkov.maxim.s@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.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 2b50030ad97e..4143cafbf7e7 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c @@ -345,6 +345,8 @@ static int pcs_set_mux(struct pinctrl_dev *pctldev, unsigned fselector, if (!pcs->fmask) return 0; function = pinmux_generic_get_function(pctldev, fselector); + if (!function) + return -EINVAL; func = function->data; if (!func) return -EINVAL; |