diff options
author | Nishka Dasgupta <nishkadg.linux@gmail.com> | 2019-07-06 18:49:11 +0530 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2019-09-03 20:33:43 +0200 |
commit | 0a321b97368aa0567f238207eeb19cc8cbb6a7e2 (patch) | |
tree | a51843bf9edb029a1115daf31d82f3abf1649280 /drivers/i2c | |
parent | 7077ad2ee316551b4ba9602838d09b67683e20b6 (diff) | |
download | linux-0a321b97368aa0567f238207eeb19cc8cbb6a7e2.tar.gz linux-0a321b97368aa0567f238207eeb19cc8cbb6a7e2.tar.bz2 linux-0a321b97368aa0567f238207eeb19cc8cbb6a7e2.zip |
i2c: fsi: Add of_put_node() before break
Each iteration of for_each_available_childe_of_node puts the previous
node, but in the case of a break from the middle of the loop, there
is no put, thus causing a memory leak. Add an of_node_put before the
break.
Issue found with Coccinelle.
Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Reviewed-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-fsi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-fsi.c b/drivers/i2c/busses/i2c-fsi.c index da5eb3960def..e0c256922d4f 100644 --- a/drivers/i2c/busses/i2c-fsi.c +++ b/drivers/i2c/busses/i2c-fsi.c @@ -707,8 +707,10 @@ static int fsi_i2c_probe(struct device *dev) continue; port = kzalloc(sizeof(*port), GFP_KERNEL); - if (!port) + if (!port) { + of_node_put(np); break; + } port->master = i2c; port->port = port_no; |