soc: renesas: rcar-sysc: Add goto to of_node_put() before return
diff mbox series

Message ID 20190815061355.4415-1-nishkadg.linux@gmail.com
State Accepted
Delegated to: Geert Uytterhoeven
Headers show
Series
  • soc: renesas: rcar-sysc: Add goto to of_node_put() before return
Related show

Commit Message

Nishka Dasgupta Aug. 15, 2019, 6:13 a.m. UTC
The local variable np in function rcar_sysc_pd_init takes the return
value of of_find_matching_node_and_match, which gets a node but does not
put it. If np is not put before the function returns, it may cause a
memory leak. Hence, remove the return statement that does not
immediately follow a putting of np. Replace it with a goto pointing to a
pre-existing label that first puts np and then returns the required
value.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
---
 drivers/soc/renesas/rcar-sysc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Geert Uytterhoeven Aug. 16, 2019, 7:26 a.m. UTC | #1
Thanks, applied and queued for v5.4.On Thu, Aug 15, 2019 at 8:14 AM
Nishka Dasgupta <nishkadg.linux@gmail.com> wrote:
> The local variable np in function rcar_sysc_pd_init takes the return
> value of of_find_matching_node_and_match, which gets a node but does not
> put it. If np is not put before the function returns, it may cause a
> memory leak. Hence, remove the return statement that does not
> immediately follow a putting of np. Replace it with a goto pointing to a
> pre-existing label that first puts np and then returns the required
> value.
> Issue found with Coccinelle.
>
> Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>

Fixes: afa6f53df6052968 ("soc: renesas: rcar-sysc: Add support for
fixing up power area tables")
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
i.e. will queue in renesas-devel for v5.4.

Gr{oetje,eeting}s,

                        Geert

Patch
diff mbox series

diff --git a/drivers/soc/renesas/rcar-sysc.c b/drivers/soc/renesas/rcar-sysc.c
index 0c80fab4f8de..8a53f18d0429 100644
--- a/drivers/soc/renesas/rcar-sysc.c
+++ b/drivers/soc/renesas/rcar-sysc.c
@@ -346,7 +346,7 @@  static int __init rcar_sysc_pd_init(void)
 	if (info->init) {
 		error = info->init();
 		if (error)
-			return error;
+			goto out_put;
 	}
 
 	has_cpg_mstp = of_find_compatible_node(NULL, NULL,