OSDN Git Service

usb: dwc3: st: Add of_node_put() before return in probe function
authorNishka Dasgupta <nishkadg.linux@gmail.com>
Mon, 19 Aug 2019 07:24:35 +0000 (12:54 +0530)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Wed, 28 Aug 2019 10:04:58 +0000 (13:04 +0300)
commite36721b90144bb46e1b6477be3ab63439c7fb79b
tree7c74576f1fa9f709ac70b2813f546146181399fe
parentc09b73cfac2a9317f1104169045c519c6021aa1d
usb: dwc3: st: Add of_node_put() before return in probe function

The local variable child in the function st_dwc3_probe takes the return
value of of_get_child_by_name, which gets a node and does not put it. If
the function returns without releasing child, this could cause a memory
error. Hence put child as soon as there is no more use for it. Also
create a new label, err_node_put, just before label undo_softreset; so
that err_node_put puts child. In between initialisation of child and its
first put, modify all statements that go to undo_softreset to now go to
err_node_put instead, from where they can fall through to
undo_softreset.
Issue found with Coccinelle.

Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/dwc3-st.c