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-15 17:22:25 +0100 |
| commit | 6e2a0521e4e84a2698f2da3950fb5c5496a4d208 (patch) | |
| tree | 95518a6a2091ed251808c095f32c4d78a0ccf3fb | |
| parent | 61f8a493c0760883f73565d7a23af5a18f2077b2 (diff) | |
| download | linux-6e2a0521e4e84a2698f2da3950fb5c5496a4d208.tar.gz linux-6e2a0521e4e84a2698f2da3950fb5c5496a4d208.tar.bz2 linux-6e2a0521e4e84a2698f2da3950fb5c5496a4d208.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 d139cd9e6d13..22e471933b37 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c @@ -372,6 +372,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; |
