diff options
| author | 2025-08-25 18:47:58 -0700 | |
|---|---|---|
| committer | 2025-08-25 18:47:58 -0700 | |
| commit | fab1beda7597fac1cecc01707d55eadb6bbe773c (patch) | |
| tree | 43cfa4e6713039c5c091de7d502bde95b19e5376 /drivers/of/dynamic.c | |
| parent | Merge tag 'pinctrl-v6.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl (diff) | |
| parent | of: dynamic: Fix use after free in of_changeset_add_prop_helper() (diff) | |
| download | wireguard-linux-fab1beda7597fac1cecc01707d55eadb6bbe773c.tar.xz wireguard-linux-fab1beda7597fac1cecc01707d55eadb6bbe773c.zip | |
Merge tag 'devicetree-fixes-for-6.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree fixes from Rob Herring:
- Fix a memory leak for of_pci_add_properties() failure case. Then fix
the introduced UAF.
- Add missing IORESOURCE_MEM flag on of_reserved_mem_region_to_resource()
- Add already in use vendor prefix "eswin"
- Clarify "of of" comment in of_match_device(). After many years of
drive-by patches dropping the 2nd "of" (which referred to
OpenFirmware), a correct patch finally arrived
* tag 'devicetree-fixes-for-6.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
of: dynamic: Fix use after free in of_changeset_add_prop_helper()
dt-bindings: vendor-prefixes: add eswin
of: reserved_mem: Add missing IORESOURCE_MEM flag on resources
of: dynamic: Fix memleak when of_pci_add_properties() failed
of: Clarify OF device context in of_match_device() comment
Diffstat (limited to 'drivers/of/dynamic.c')
| -rw-r--r-- | drivers/of/dynamic.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c index 0aba760f7577..2eaaddcb0ec4 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -935,10 +935,15 @@ static int of_changeset_add_prop_helper(struct of_changeset *ocs, return -ENOMEM; ret = of_changeset_add_property(ocs, np, new_pp); - if (ret) + if (ret) { __of_prop_free(new_pp); + return ret; + } - return ret; + new_pp->next = np->deadprops; + np->deadprops = new_pp; + + return 0; } /** |
