hwmon: (ina3221) Add of_node_put() before return
authorNishka Dasgupta <nishkadg.linux@gmail.com>
Sat, 6 Jul 2019 13:21:30 +0000 (18:51 +0530)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 9 Jul 2019 01:11:32 +0000 (18:11 -0700)
Each iteration of for_each_child_of_node puts the previous
node, but in the case of a return from the middle of the loop, there is
no put, thus causing a memory leak. Hence add an of_node_put before the
return.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190706132130.3129-1-nishkadg.linux@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/ina3221.c

index 55943b4dcc7b6b131915ce193aff97fab79f4477..0037e2bdacd6b25ea2edca74fa7d11b542e0b843 100644 (file)
@@ -713,8 +713,10 @@ static int ina3221_probe_from_dt(struct device *dev, struct ina3221_data *ina)
 
        for_each_child_of_node(np, child) {
                ret = ina3221_probe_child_from_dt(dev, child, ina);
-               if (ret)
+               if (ret) {
+                       of_node_put(child);
                        return ret;
+               }
        }
 
        return 0;