Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: of: Add of_node_put() before return in function

The local variable search in regulator_of_get_init_node takes the value
returned by either of_get_child_by_name or of_node_get, both of which
get a node. If this node is not put before returning, it could cause a
memory leak. Hence put search before a mid-loop return statement.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190724083231.10276-1-nishkadg.linux@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Nishka Dasgupta and committed by
Mark Brown
811ba489 a853c0a0

+3 -1
+3 -1
drivers/regulator/of_regulator.c
··· 416 416 if (!name) 417 417 name = child->name; 418 418 419 - if (!strcmp(desc->of_match, name)) 419 + if (!strcmp(desc->of_match, name)) { 420 + of_node_put(search); 420 421 return of_node_get(child); 422 + } 421 423 } 422 424 423 425 of_node_put(search);