From: Sakari Ailus Date: Wed, 1 Dec 2021 12:59:29 +0000 (+0200) Subject: device property: Fix fwnode_graph_devcon_match() fwnode leak X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=4a7f4110f79163fd53ea65438041994ed615e3af;p=linux.git device property: Fix fwnode_graph_devcon_match() fwnode leak For each endpoint it encounters, fwnode_graph_devcon_match() checks whether the endpoint's remote port parent device is available. If it is not, it ignores the endpoint but does not put the reference to the remote endpoint port parent fwnode. For available devices the fwnode handle reference is put as expected. Put the reference for unavailable devices now. Fixes: 637e9e52b185 ("device connection: Find device connections also from device graphs") Cc: 5.1+ # 5.1+ Signed-off-by: Sakari Ailus Reviewed-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/base/property.c b/drivers/base/property.c index d0960a9e89741..b7b3a7b860060 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -1158,8 +1158,10 @@ fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id, fwnode_graph_for_each_endpoint(fwnode, ep) { node = fwnode_graph_get_remote_port_parent(ep); - if (!fwnode_device_is_available(node)) + if (!fwnode_device_is_available(node)) { + fwnode_handle_put(node); continue; + } ret = match(node, con_id, data); fwnode_handle_put(node);