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)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 8 Oct 2018 13:25:21 +0000 (15:25 +0200)
commitb790c8ea5593d6dc3580adfad8e117eeb56af874
treed2d2fe620766a8caf5d26cdc934ef5b0ef14a3aa
parenteea2926b0a390969828e49ea96c45a2b1f007030
reset: Fix potential use-after-free in __of_reset_control_get()

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>
drivers/reset/core.c