All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pinctrl: rockchip: fix NULL ptr deref in rockchip_pinctrl_parse_groups()
@ 2025-09-03 19:48 ` Sergey Shtylyov
  0 siblings, 0 replies; 12+ messages in thread
From: Sergey Shtylyov @ 2025-09-03 19:48 UTC (permalink / raw)
  To: Linus Walleij, Heiko Stuebner, linux-gpio
  Cc: linux-arm-kernel, linux-rockchip

In the Rockchip driver, rockchip_pinctrl_parse_groups() assumes that the
"rockchip,pins" property will always be present in the DT node it parses
and so doesn't check the result of of_get_property() for NULL. If the DT
passed to the kernel happens to have such property missing, then we will
get a kernel oops when the pointer is dereferenced in the *for* loop just
a few lines after the call.  I think it's better to play safe by checking
the list variable for NULL (and reporting error if so), like we check the
size variable for validity further down...

Found by Linux Verification Center (linuxtesting.org) with the Svace static
analysis tool.

Fixes: d3e5116119bd ("pinctrl: add pinctrl driver for Rockchip SoCs")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

---
The patch is against the master branch of Linus Torvalds' linux.git repo.

 drivers/pinctrl/pinctrl-rockchip.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: linux/drivers/pinctrl/pinctrl-rockchip.c
===================================================================
--- linux.orig/drivers/pinctrl/pinctrl-rockchip.c
+++ linux/drivers/pinctrl/pinctrl-rockchip.c
@@ -3488,7 +3488,9 @@ static int rockchip_pinctrl_parse_groups
 	 * do sanity check and calculate pins number
 	 */
 	list = of_get_property(np, "rockchip,pins", &size);
-	/* we do not check return since it's safe node passed down */
+	if (!list)
+		return dev_err_probe(dev, -EINVAL,
+				     "%pOF: no rockchip,pins property\n", np);
 	size /= sizeof(*list);
 	if (!size || size % 4)
 		return dev_err_probe(dev, -EINVAL,


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-10-16  9:29 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-03 19:48 [PATCH] pinctrl: rockchip: fix NULL ptr deref in rockchip_pinctrl_parse_groups() Sergey Shtylyov
2025-09-03 19:48 ` Sergey Shtylyov
2025-09-07 17:28 ` Heiko Stuebner
2025-09-07 17:28   ` Heiko Stuebner
2025-09-08  5:53   ` Chen-Yu Tsai
2025-09-08  5:53     ` Chen-Yu Tsai
2025-09-08 14:36     ` Sergey Shtylyov
2025-09-08 14:36       ` Sergey Shtylyov
2025-09-08 12:59 ` Linus Walleij
2025-09-08 12:59   ` Linus Walleij
2025-10-16  9:29   ` Sergey Shtylyov
2025-10-16  9:29     ` Sergey Shtylyov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.