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>
Sun, 24 Nov 2019 07:20:38 +0000 (08:20 +0100)
commit16c2d36b11239b0f8f03818764d7c94aa4abd542
tree694f3b642a9f892698a7face0dadaba4b062bbd9
parent84b787e35482b871046349c3a9b237aaa0980169
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