reset: Fix potential use-after-free in __of_reset_control_get()
authorGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 8 Oct 2018 11:14:35 +0000 (13:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Nov 2019 08:53:42 +0000 (09:53 +0100)
commit1012e97fb04ef5fc6728ddc304c1387f6a704547
treecea5968ad2b6343180672482f9c16426f251b758
parent8077c98ce4c154d2f4dfcabb775daab4f8a3f421
reset: Fix potential use-after-free in __of_reset_control_get()

[ Upstream commit b790c8ea5593d6dc3580adfad8e117eeb56af874 ]

Calling of_node_put() decreases the reference count of a device tree
object, and may free some data.

However, the of_phandle_args structure embedding it is passed to
reset_controller_dev.of_xlate() after that, so it may still be accessed.

Move the call to of_node_put() down to fix this.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
[p.zabel@pengutronix.de: moved of_node_put after mutex_unlock]
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/reset/core.c