dtc/libfdt
Pierre-Clément Tosi 79b9e326a1 libfdt: fdt_get_alias_namelen: Validate aliases
Ensure that the alias found matches the device tree specification v0.4:

    Each property of the /aliases node defines an alias. The property
    name specifies the alias name. The property value specifies the full
    path to a node in the devicetree.

This protects against a stack overflow caused by

    fdt_path_offset_namelen(fdt, path, namelen)

calling

    fdt_path_offset(fdt, fdt_get_alias_namelen(fdt, path, namelen))

leading to infinite recursion on DTs with "circular" aliases.

This fix was originally written by Mike McTernan for Android in [1].

[1]: https://android.googlesource.com/platform/external/dtc/+/9308e7f9772bd226fea9925b1fc4d53c127ed4d5

Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
Acked-by: Mike McTernan <mikemcternan@google.com>
Message-ID: <20231010092725.63h7c45p2fnmj577@google.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2023-10-11 11:35:08 +11:00
..
.gitignore Link tools and tests against libfdt shared library 2019-03-29 17:20:16 +11:00
fdt.c libfdt: prevent integer overflow in fdt_next_tag 2022-10-12 10:49:36 +11:00
fdt.h libfdt: Replace deprecated 0-length arrays with proper flexible arrays 2023-01-29 14:42:57 +11:00
fdt_addresses.c libfdt: fix an incorrect integer promotion 2021-11-17 12:22:53 +11:00
fdt_check.c libfdt: Don't mask fdt_get_name() returned error 2022-07-30 13:52:33 +10:00
fdt_empty_tree.c libfdt: Replace GPL/BSD boilerplate/reference with SPDX tags 2019-06-21 21:06:10 +10:00
fdt_overlay.c libfdt: overlay: make overlay_get_target() public 2021-11-18 16:25:10 +11:00
fdt_ro.c libfdt: fdt_get_alias_namelen: Validate aliases 2023-10-11 11:35:08 +11:00
fdt_rw.c Fix CID 1461557 2021-06-08 16:32:59 +10:00
fdt_strerror.c libfdt: Add ALIGNMENT error string 2021-08-02 12:21:53 +10:00
fdt_sw.c Set last_comp_version correctly in new dtb and fix potential version issues in fdt_open_into 2021-01-04 12:26:37 +11:00
fdt_wip.c libfdt: libfdt_wip: Fix comparison warning 2020-10-02 10:30:07 +10:00
libfdt.h libfdt: Fix fdt_appendprop_addrrange documentation 2023-09-04 15:27:55 +10:00
libfdt_env.h libfdt: Replace GPL/BSD boilerplate/reference with SPDX tags 2019-06-21 21:06:10 +10:00
libfdt_internal.h libfdt: Tweak description of assume-aligned load helpers 2020-12-16 16:52:17 +11:00
Makefile.libfdt libfdt: rename libfdt-X.Y.Z.so to libfdt.so.X.Y.Z 2023-08-06 14:53:29 +10:00
meson.build libfdt: fix library version to match project version 2023-08-01 13:09:19 +10:00
TODO dtc: Update TODO files 2007-12-19 08:20:26 -06:00
version.lds libfdt: add missing version symbols 2023-08-04 18:02:33 +10:00