]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
leds: flash: mt6360: Fix device_for_each_child_node() refcounting in error paths
authorJavier Carrasco <javier.carrasco.cruz@gmail.com>
Thu, 26 Sep 2024 23:20:52 +0000 (01:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Dec 2024 09:41:08 +0000 (10:41 +0100)
commite78d04d36481a2b2070b1e5e86b6b1c96cf0ea89
tree23931acdbd9a1d0e66b0732e61236c5abcaf2d23
parent3a3f789ee15b13c4bd4aba0137acc8e8f09436b6
leds: flash: mt6360: Fix device_for_each_child_node() refcounting in error paths

commit 73b03b27736e440e3009fe1319cbc82d2cd1290c upstream.

The device_for_each_child_node() macro requires explicit calls to
fwnode_handle_put() upon early exits to avoid memory leaks, and in
this case the error paths are handled after jumping to
'out_flash_realease', which misses that required call to
to decrement the refcount of the child node.

A more elegant and robust solution is using the scoped variant of the
loop, which automatically handles such early exits.

Fix the child node refcounting in the error paths by using
device_for_each_child_node_scoped().

Cc: stable@vger.kernel.org
Fixes: 679f8652064b ("leds: Add mt6360 driver")
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://lore.kernel.org/r/20240927-leds_device_for_each_child_node_scoped-v1-1-95c0614b38c8@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/leds/flash/leds-mt6360.c