]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ACPI: property: Fix fwnode refcount leak in acpi_fwnode_graph_parse_endpoint()
authorHaotian Zhang <vulab@iscas.ac.cn>
Tue, 11 Nov 2025 07:50:00 +0000 (15:50 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 12 Nov 2025 20:23:56 +0000 (21:23 +0100)
acpi_fwnode_graph_parse_endpoint() calls fwnode_get_parent() to obtain the
parent fwnode but returns without calling fwnode_handle_put() on it. This
potentially leads to a fwnode refcount leak and prevents the parent node
from being released properly.

Call fwnode_handle_put() on the parent fwnode before returning to prevent
the leak from occurring.

Fixes: 3b27d00e7b6d ("device property: Move fwnode graph ops to firmware specific locations")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
[ rjw: Changelog edits ]
Link: https://patch.msgid.link/20251111075000.1828-1-vulab@iscas.ac.cn
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/property.c

index 73171d277ab6233a34226947df29fa72c22af699..57a9c18ec6732b599d587247fa64e8e53d12dd5d 100644 (file)
@@ -1718,6 +1718,7 @@ static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
        if (fwnode_property_read_u32(fwnode, "reg", &endpoint->id))
                fwnode_property_read_u32(fwnode, "endpoint", &endpoint->id);
 
+       fwnode_handle_put(port_fwnode);
        return 0;
 }