pinctrl: samsung: Validate alias coming from DT
authorKrzysztof Kozlowski <krzk@kernel.org>
Tue, 20 Feb 2018 18:17:51 +0000 (19:17 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 8 Mar 2018 12:02:26 +0000 (13:02 +0100)
commit93b0beae721b3344923b4b8317e9d83b542f4ca6
treece5cc58b8d2c4ad71fd843922eea601ca3728005
parent625504aeff11eeb95f78ad9dde22d911c6839c71
pinctrl: samsung: Validate alias coming from DT

Driver uses alias from Device Tree as an index of pin controller data
array.  In case of a wrong DTB or an out-of-tree DTB, the alias could be
outside of this data array leading to out-of-bounds access.

Depending on binary and memory layout, this could be handled properly
(showing error like "samsung-pinctrl 3860000.pinctrl: driver data not
available") or could lead to exceptions.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: <stable@vger.kernel.org>
Fixes: 30574f0db1b1 ("pinctrl: add samsung pinctrl and gpiolib driver")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Tomasz Figa <tomasz.figa@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
drivers/pinctrl/samsung/pinctrl-exynos-arm64.c
drivers/pinctrl/samsung/pinctrl-s3c24xx.c
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
drivers/pinctrl/samsung/pinctrl-samsung.c
drivers/pinctrl/samsung/pinctrl-samsung.h