diff options
| author | Haotian Zhang <vulab@iscas.ac.cn> | 2025-11-11 15:50:00 +0800 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2025-11-12 21:23:56 +0100 |
| commit | 593ee49222a0d751062fd9a5e4a963ade4ec028a (patch) | |
| tree | be93829c17c1281074400553b9905cacaa8eba74 /drivers/acpi/property.c | |
| parent | b889ed5abf4796671b742692fdca35c4002892ee (diff) | |
ACPI: property: Fix fwnode refcount leak in acpi_fwnode_graph_parse_endpoint()
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>
Diffstat (limited to 'drivers/acpi/property.c')
| -rw-r--r-- | drivers/acpi/property.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c index 73171d277ab6..57a9c18ec673 100644 --- a/drivers/acpi/property.c +++ b/drivers/acpi/property.c @@ -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; } |