summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2022-01-14 09:47:57 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2022-01-14 10:32:45 +0100
commit75bfd44939d4c38d6425c84825c4ef8c6d48356f (patch)
treedeabcad6ce5b34ecd8e34c80da72dac0c1779c8b /drivers/pinctrl
parent0fcc8c97ea073aac4ad1e1d8770f1ea2204e6487 (diff)
downloadbarebox-75bfd44939d4c38d6425c84825c4ef8c6d48356f.tar.gz
barebox-75bfd44939d4c38d6425c84825c4ef8c6d48356f.tar.xz
pinctrl: Rockchip: abort GPIO probe gracefully on out-of-range alias id
&{/aliases} { gpio120 = &gpio1; } so far led to an out-of-bounds read when probing &gpio1. Fix this. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220114084757.311697-2-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index ea748b6004..869cce1982 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -334,6 +334,8 @@ static int rockchip_gpio_probe(struct device_d *dev)
int ret, bankno;
bankno = of_alias_get_id(dev->device_node, "gpio");
+ if (bankno >= ctrl->nr_banks)
+ bankno = -EINVAL;
if (bankno < 0)
return bankno;