Skip to content

Commit

Permalink
regulator: of: Add of_node_put() before return in function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Nishka Dasgupta authored and Mark Brown committed Aug 1, 2019
1 parent a853c0a commit 811ba48
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/regulator/of_regulator.c
Original file line number Diff line number Diff line change
Expand Up @@ -416,8 +416,10 @@ device_node *regulator_of_get_init_node(struct device *dev,
if (!name)
name = child->name;

if (!strcmp(desc->of_match, name))
if (!strcmp(desc->of_match, name)) {
of_node_put(search);
return of_node_get(child);
}
}

of_node_put(search);
Expand Down

0 comments on commit 811ba48

Please sign in to comment.