diff mbox series

leds: aw2013: fix leak of device node iterator

Message ID 20200925232644.GA17005@agrajag.zerfleddert.de
State New
Headers show
Series leds: aw2013: fix leak of device node iterator | expand

Commit Message

Tobias Jordan Sept. 25, 2020, 11:26 p.m. UTC
In the error path of the for_each_available_child_of_node loop in
aw2013_probe_dt, add missing call to of_node_put to avoid leaking the
iterator.

Fixes: 59ea3c9faf32 ("leds: add aw2013 driver")
Signed-off-by: Tobias Jordan <kernel@cdqe.de>
---
 drivers/leds/leds-aw2013.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Pavel Machek Sept. 30, 2020, 5:10 p.m. UTC | #1
Hi!

> In the error path of the for_each_available_child_of_node loop in
> aw2013_probe_dt, add missing call to of_node_put to avoid leaking the
> iterator.
> 
> Fixes: 59ea3c9faf32 ("leds: add aw2013 driver")
> Signed-off-by: Tobias Jordan <kernel@cdqe.de>

This failed to apply to my -for-next tree.

Best regards,
								Pavel
Tobias Jordan Sept. 30, 2020, 8:44 p.m. UTC | #2
On 2020-09-30 19:10, Pavel Machek wrote:
Hi Pavel,

> > In the error path of the for_each_available_child_of_node loop in
> > aw2013_probe_dt, add missing call to of_node_put to avoid leaking
> > the iterator.
> > 
> > Fixes: 59ea3c9faf32 ("leds: add aw2013 driver")
> > Signed-off-by: Tobias Jordan <kernel@cdqe.de>  
> 
> This failed to apply to my -for-next tree.

Yes, it turns out this had been fixed by Marek already one day
before I submitted my patch (in commit 2c6775625434) and I didn't
notice that. So nothing to do there, sorry for the inconvenience.

Best regards,

Tobias
diff mbox series

Patch

diff --git a/drivers/leds/leds-aw2013.c b/drivers/leds/leds-aw2013.c
index d709cc1f949e..8687ffa57a28 100644
--- a/drivers/leds/leds-aw2013.c
+++ b/drivers/leds/leds-aw2013.c
@@ -305,8 +305,10 @@  static int aw2013_probe_dt(struct aw2013 *chip)
 
 		ret = devm_led_classdev_register_ext(&chip->client->dev,
 						     &led->cdev, &init_data);
-		if (ret < 0)
+		if (ret < 0) {
+			of_node_put(child);
 			return ret;
+		}
 
 		i++;
 	}