Commit Graph

2921 Commits

Author SHA1 Message Date
Michael Bestas
3739389752 Merge tag 'android-14.0.0_r29' into staging/lineage-21.0_merge-android-14.0.0_r29
Android 14.0.0 release 29

# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZeZWyQAKCRDorT+BmrEO
# eCurAKCMOLzC9jKbJRZe0b/ZNoNv9wlE3ACeO6DTK0llqb4qNN+/W1JFTPbTBro=
# =/Jha
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue Mar  5 01:18:33 2024 EET
# gpg:                using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [marginal]
# gpg: initial-contribution@android.com: Verified 2339 signatures in the past
#      2 years.  Encrypted 4 messages in the past 2 years.
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 4340 D135 70EF 945E 8381  0964 E8AD 3F81 9AB1 0E78

# By Pierre-Clément Tosi (12) and others
# Via Automerger Merge Worker (50) and others
* tag 'android-14.0.0_r29':
  ANDROID: Generate version_gen.h in Soong and Bazel
  FROMGIT: libfdt: fdt_get_alias_namelen: Validate aliases
  FROMGIT: use fdt_path_getprop_namelen() in fdt_get_alias_namelen()
  FROMGIT: add fdt_path_getprop_namelen() helper
  ANDROID: Revert "libfdt: Validate alias property value is a valid string."
  FROMLIST: libdft: fdt_next_tag: Harden offset overflow check
  FROMGIT: libfdt: prevent integer overflow in fdt_next_tag
  ANDROID: Revert "Fix integer wrap sanitisation."
  FROMGIT: libfdt: fdt_path_offset_namelen: Reject empty path
  ANDROID: Revert "libfdt: fdt_path_offset_namelen: Reject empty paths"
  ANDROID: bazel: Clean up lexer and parser rules
  ANDROID: bazel: Fix dtc header dependencies
  ANDROID: Use -Wall and more when building libfdt
  ANDROID: Use -Wno-macro-redefined for DTC tools
  ANDROID: De-dup fdt_path_offset_namelen check
  build: Add BUILD.bazel file

Change-Id: Id735f73688acfa3758902473383abd9eea6e8f5a
2024-03-09 00:29:23 +02:00
Android Build Coastguard Worker
e7f7a95ff8 Snap for 10942032 from 802f98b189 to 24Q1-release
Change-Id: I1fa4a7753a86dba113d0100bcbcb5fa45f6e5f88
2023-10-13 03:12:40 +00:00
Pierre-Clément Tosi
802f98b189 Merge changes I1e5a8903,I43c6ad22,If9a102a6,I702e619c into main am: e5b8c171c5 am: 132ab4d211 am: 59703fa923 am: cc558f2f2a am: 5ec1ec09d0
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784253

Change-Id: I7aad50747418f387e4f6e8c01404a2caf6b2316c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 15:15:50 +00:00
Pierre-Clément Tosi
c2970dd8f8 Merge changes I0b17b082,I894051ed,I662a5997 into main am: 6cda0a19bb am: 14b204d707 am: a23524bad8 am: dc5c2d983f am: 13a364e68b
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784256

Change-Id: I2a17540cb29bdcad277dc5bb459dfe03c332b840
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 15:15:38 +00:00
Pierre-Clément Tosi
a139df2377 Merge changes I8efee39a,I5295898f into main am: 1fe80c59e9 am: 9da6d57591 am: f25c58e67f am: 4b55e461f4 am: 1f58b343aa
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784352

Change-Id: Icce4d3b2537abf28eb31258cf458786a6138f586
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 15:14:58 +00:00
Pierre-Clément Tosi
5ec1ec09d0 Merge changes I1e5a8903,I43c6ad22,If9a102a6,I702e619c into main am: e5b8c171c5 am: 132ab4d211 am: 59703fa923 am: cc558f2f2a
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784253

Change-Id: I379f195d1319c795ab79b32d96845401672a6dd8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 14:44:11 +00:00
Pierre-Clément Tosi
13a364e68b Merge changes I0b17b082,I894051ed,I662a5997 into main am: 6cda0a19bb am: 14b204d707 am: a23524bad8 am: dc5c2d983f
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784256

Change-Id: Ia2572338b7063cdff47fb37a3907f15109a37a33
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 14:44:02 +00:00
Pierre-Clément Tosi
1f58b343aa Merge changes I8efee39a,I5295898f into main am: 1fe80c59e9 am: 9da6d57591 am: f25c58e67f am: 4b55e461f4
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784352

Change-Id: Ie1d6718e96616c26c9a378ee6aa20bae40f9e0d7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 14:43:32 +00:00
Pierre-Clément Tosi
cc558f2f2a Merge changes I1e5a8903,I43c6ad22,If9a102a6,I702e619c into main am: e5b8c171c5 am: 132ab4d211 am: 59703fa923
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784253

Change-Id: Idcdb4013ebdcbfcf6645559af240afa9dadad552
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 14:11:03 +00:00
Pierre-Clément Tosi
dc5c2d983f Merge changes I0b17b082,I894051ed,I662a5997 into main am: 6cda0a19bb am: 14b204d707 am: a23524bad8
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784256

Change-Id: Ic7243a79750a8f3057f0109ff11c8163f07544a6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 14:10:53 +00:00
Pierre-Clément Tosi
4b55e461f4 Merge changes I8efee39a,I5295898f into main am: 1fe80c59e9 am: 9da6d57591 am: f25c58e67f
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784352

Change-Id: I65a9557ee7f58ee57e72b42833b817afa063f14a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 14:10:42 +00:00
Pierre-Clément Tosi
59703fa923 Merge changes I1e5a8903,I43c6ad22,If9a102a6,I702e619c into main am: e5b8c171c5 am: 132ab4d211
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784253

Change-Id: Idee4fb28354825e3a1e104099528e22821a3986c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 13:37:41 +00:00
Pierre-Clément Tosi
a23524bad8 Merge changes I0b17b082,I894051ed,I662a5997 into main am: 6cda0a19bb am: 14b204d707
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784256

Change-Id: Iae8a7309c28536ca83f39b2471eaf6bd15006768
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 13:37:31 +00:00
Pierre-Clément Tosi
f25c58e67f Merge changes I8efee39a,I5295898f into main am: 1fe80c59e9 am: 9da6d57591
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784352

Change-Id: Ibd8df9868d097e36b8def39a1c655f58e42cb640
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 13:37:11 +00:00
Pierre-Clément Tosi
132ab4d211 Merge changes I1e5a8903,I43c6ad22,If9a102a6,I702e619c into main am: e5b8c171c5
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784253

Change-Id: I0afccef8cf1d66b917fb815c72692f047b7b7672
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 13:05:42 +00:00
Pierre-Clément Tosi
14b204d707 Merge changes I0b17b082,I894051ed,I662a5997 into main am: 6cda0a19bb
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784256

Change-Id: I443a3252399495cb3d2274a224e5f9184187e686
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 13:05:29 +00:00
Pierre-Clément Tosi
9da6d57591 Merge changes I8efee39a,I5295898f into main am: 1fe80c59e9
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784352

Change-Id: Iadf79304e0769fb62b886b93d116eb256bf89024
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 13:05:16 +00:00
Pierre-Clément Tosi
e5b8c171c5 Merge changes I1e5a8903,I43c6ad22,If9a102a6,I702e619c into main
* changes:
  FROMGIT: libfdt: fdt_get_alias_namelen: Validate aliases
  FROMGIT: use fdt_path_getprop_namelen() in fdt_get_alias_namelen()
  FROMGIT: add fdt_path_getprop_namelen() helper
  ANDROID: Revert "libfdt: Validate alias property value is a valid string."
2023-10-12 12:26:27 +00:00
Pierre-Clément Tosi
6cda0a19bb Merge changes I0b17b082,I894051ed,I662a5997 into main
* changes:
  FROMLIST: libdft: fdt_next_tag: Harden offset overflow check
  FROMGIT: libfdt: prevent integer overflow in fdt_next_tag
  ANDROID: Revert "Fix integer wrap sanitisation."
2023-10-12 12:25:58 +00:00
Pierre-Clément Tosi
1fe80c59e9 Merge changes I8efee39a,I5295898f into main
* changes:
  FROMGIT: libfdt: fdt_path_offset_namelen: Reject empty path
  ANDROID: Revert "libfdt: fdt_path_offset_namelen: Reject empty paths"
2023-10-12 12:25:33 +00:00
Pierre-Clément Tosi
ae4c5b8d6b Merge changes I6b780c1d,I238d963a,I32076c65 into main am: 51f1006440 am: dc59b8c5ce am: 15ee7e75ee am: 260ca43c05 am: 413967daf9
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784358

Change-Id: If27eaab096fbbaed77317669e59938fcce1b611c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 11:56:56 +00:00
Pierre-Clément Tosi
392276f747 ANDROID: Use -Wall and more when building libfdt am: 170bf1d4ce am: 350d496637 am: 98f5673dc6 am: 7a55909ac6 am: 6b0a343f75
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784258

Change-Id: I3a1043f37b4f1c7279f3ece28692fba6858b76f2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 11:56:21 +00:00
Pierre-Clément Tosi
51f90ce6cb ANDROID: Use -Wno-macro-redefined for DTC tools am: 6c25e96cf6 am: bcf99873a6 am: 885653f48b am: 206c37454a am: 036151f416
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784257

Change-Id: Ifcfc694b6703b0470f95b08c7716d33da4cc865e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 11:56:18 +00:00
Pierre-Clément Tosi
413967daf9 Merge changes I6b780c1d,I238d963a,I32076c65 into main am: 51f1006440 am: dc59b8c5ce am: 15ee7e75ee am: 260ca43c05
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784358

Change-Id: I97ea7cbaa3d42e1a186eaf8201d066fdd4709e16
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 11:24:51 +00:00
Pierre-Clément Tosi
6b0a343f75 ANDROID: Use -Wall and more when building libfdt am: 170bf1d4ce am: 350d496637 am: 98f5673dc6 am: 7a55909ac6
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784258

Change-Id: I0ee033f59b97bc940f04ed95f4461350ddb65019
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 11:24:34 +00:00
Pierre-Clément Tosi
036151f416 ANDROID: Use -Wno-macro-redefined for DTC tools am: 6c25e96cf6 am: bcf99873a6 am: 885653f48b am: 206c37454a
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784257

Change-Id: If7595ea8fed0508933473ee3d120af2f36e2341f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 11:24:32 +00:00
Pierre-Clément Tosi
260ca43c05 Merge changes I6b780c1d,I238d963a,I32076c65 into main am: 51f1006440 am: dc59b8c5ce am: 15ee7e75ee
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784358

Change-Id: I2aefd49fb0818eca8010a53d8b44146c3654392c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 10:51:38 +00:00
Pierre-Clément Tosi
7a55909ac6 ANDROID: Use -Wall and more when building libfdt am: 170bf1d4ce am: 350d496637 am: 98f5673dc6
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784258

Change-Id: Ic1326085efd754b8c03e79170c50740e70a4c1f4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 10:51:27 +00:00
Pierre-Clément Tosi
206c37454a ANDROID: Use -Wno-macro-redefined for DTC tools am: 6c25e96cf6 am: bcf99873a6 am: 885653f48b
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784257

Change-Id: I12afdcbd80900de0afb69abed9efcf7d4df2424f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 10:51:25 +00:00
Pierre-Clément Tosi
15ee7e75ee Merge changes I6b780c1d,I238d963a,I32076c65 into main am: 51f1006440 am: dc59b8c5ce
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784358

Change-Id: I485f71bdcbe6d8a17f4575d2e58ce5ef43e56fe0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 10:18:39 +00:00
Pierre-Clément Tosi
98f5673dc6 ANDROID: Use -Wall and more when building libfdt am: 170bf1d4ce am: 350d496637
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784258

Change-Id: I2d07fa447fcd0ff3c77eaae93fb4bd53705279b3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 10:18:30 +00:00
Pierre-Clément Tosi
885653f48b ANDROID: Use -Wno-macro-redefined for DTC tools am: 6c25e96cf6 am: bcf99873a6
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784257

Change-Id: I2ee3a2bfb91b4fec1336b924c264d53b9e975483
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 10:18:27 +00:00
Pierre-Clément Tosi
dc59b8c5ce Merge changes I6b780c1d,I238d963a,I32076c65 into main am: 51f1006440
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784358

Change-Id: I3768082e802dc56c58e59e2a4d8e246b65dd17b3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 09:46:35 +00:00
Pierre-Clément Tosi
350d496637 ANDROID: Use -Wall and more when building libfdt am: 170bf1d4ce
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784258

Change-Id: I23a72a503c51497cc6c4430714d2f2dd94d4fd79
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 09:46:22 +00:00
Pierre-Clément Tosi
bcf99873a6 ANDROID: Use -Wno-macro-redefined for DTC tools am: 6c25e96cf6
Original change: https://android-review.googlesource.com/c/platform/external/dtc/+/2784257

Change-Id: I097e3cfc84c67ab620f35e9fe8194f073140d02b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-12 09:46:18 +00:00
Pierre-Clément Tosi
51f1006440 Merge changes I6b780c1d,I238d963a,I32076c65 into main
* changes:
  ANDROID: Generate version_gen.h in Soong and Bazel
  ANDROID: bazel: Clean up lexer and parser rules
  ANDROID: bazel: Fix dtc header dependencies
2023-10-12 09:16:53 +00:00
Pierre-Clément Tosi
7eeadceb3e ANDROID: Generate version_gen.h in Soong and Bazel
Upstream provides a DTC_VERSION preprocessor macro to its C code by
generating a version_gen.h header from either of its supported build
systems: Make formats the header from its internal variables (VERSION,
PATCHLEVEL, SUBLEVEL, ...) while Meson uses its vcs_tag() function on
a template, version_gen.h.in.

As AOSP doesn't make use of these build systems, aosp/204511 decided to
hardcode a version_non_gen.h file and patch the corresponding #include.
This unsurprisingly ended up bitrotting as the repo was being upgraded.

Instead, replicate the version_gen.h.in patching in our build systems,
extracting the version number from the METADATA file, which
external_updater.sh will keep up-to-date. Note that this introduces a
dependency on sed in the genrule(), the impact of which is minimized by
making METADATA_version.sed POSIX-compliant.

Keep appending the suffix '-Android-build' to the upstream version.

Test: m dtc && ${ANDROID_HOST_OUT}/bin/dtc --version
Test: bazel build //:dtc && bazel-bin/dtc --version
Change-Id: I6b780c1dbe14d415891defeb652f0692988ed0b1
2023-10-11 19:15:08 +01:00
Pierre-Clément Tosi
9964e3b4f9 FROMGIT: 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]: 9308e7f977

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>

(cherry-picked from commit 79b9e326a162b15ca5758ee214e350f4f7c038fe git://git.kernel.org/pub/scm/utils/dtc/dtc.git main)

Test: N/A
Change-Id: I1e5a89039f6b70c82e17739379d97dbf130036e8
2023-10-11 18:35:43 +01:00
Rasmus Villemoes
8106368cb0 FROMGIT: use fdt_path_getprop_namelen() in fdt_get_alias_namelen()
Simplify the code by making use of the new helper.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

(cherry-picked from commit 18f5ec12a10ec84e957222074dadf4a3e4cc8d59 git://git.kernel.org/pub/scm/utils/dtc/dtc.git main)

Test: N/A
Change-Id: I43c6ad22dbaa718cd77421a44d5e87d188d26ca0
2023-10-11 18:35:43 +01:00
Rasmus Villemoes
19db536250 FROMGIT: add fdt_path_getprop_namelen() helper
Add a wrapper for fdt_getprop_namelen() allowing one to specify the node
by path instead of offset.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

(cherry-picked from commit df093279282ca0cff4d20ceb3bb5857117ed4cc4 git://git.kernel.org/pub/scm/utils/dtc/dtc.git main)

Test: N/A
Change-Id: If9a102a622dfa726b7cb10f58c38f1b52d233be6
2023-10-11 18:35:43 +01:00
Pierre-Clément Tosi
f20cff01e7 ANDROID: Revert "libfdt: Validate alias property value is a valid string."
This reverts commit 9308e7f977.

Revert the Android patch to apply the upstream fix [1] instead.

[1]: 79b9e326a1

Test: N/A
Change-Id: I702e619c875449b5efda529d01350117a1c4a435
2023-10-11 18:35:27 +01:00
Pierre-Clément Tosi
0493daab32 FROMLIST: libdft: fdt_next_tag: Harden offset overflow check
As 'offset' is obtained through various paths within the function by
adding user-provided values to 'startoffset' and as we validate its
final value by substracting it from the initial one, there is a risk
that one of the paths might have lead to an overflow, making the check
validate a "negative" (wrong) length, potentially causing fdt_next_tag()
to report an invalid offset as valid through 'nextoffset'.

For example, when parsing an FDT_PROP, we currently validate that

    offset = startoffset + len + FDT_TAGSIZE

doesn't overflow but then assign

    offset = startoffset + len + sizeof(struct fdt_property)

so harden all paths by validating the offset in the very last check.

Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>

(am from https://lore.kernel.org/devicetree-compiler/20231011172427.g4tlsew3wsjtddil@google.com/)

Test: N/A
Change-Id: I0b17b0827ccc0ece0a2d1795b388408fb599aed7
2023-10-11 18:33:22 +01:00
Tadeusz Struk
cbfd232da3 FROMGIT: libfdt: prevent integer overflow in fdt_next_tag
Since fdt_next_tag() in a public API function all input parameters,
including the fdt blob should not be trusted. It is possible to forge
a blob with invalid property length that will cause integer overflow
during offset calculation. To prevent that, validate the property length
read from the blob before doing calculations.

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Message-Id: <20221005232931.3016047-1-tadeusz.struk@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

(cherry-picked from commit 73590342fc85ca207ca1e6cbc110179873a96962 git://git.kernel.org/pub/scm/utils/dtc/dtc.git main)

Test: N/A
Change-Id: I894051ed101255800717001a71a5a74ac66fd897
2023-10-11 18:33:18 +01:00
Pierre-Clément Tosi
bb2b54f19e ANDROID: Revert "Fix integer wrap sanitisation."
This reverts commit 0e783e26f7.

Revert the patch we've had in Android now that upstream has [1]

    commit 73590342fc85 ("libfdt: prevent integer overflow in fdt_next_tag")

which addresses the same bug.

As that patch is less rigorous w.r.t. the final value of 'offset' than
the one, the last 'if' is upstreamed by [2], which will be cherry-picked
here.

[1]: 73590342fc
[2]: https://lore.kernel.org/devicetree-compiler/20231011172427.g4tlsew3wsjtddil@google.com/

Test: N/A
Change-Id: I662a599713b4090abd090322bca0a78e58f4c92c
2023-10-11 18:31:44 +01:00
Pierre-Clément Tosi
b202d115bd FROMGIT: libfdt: fdt_path_offset_namelen: Reject empty path
Reject empty paths and negative lengths, according to the DT spec v0.4:

    The convention for specifying a device path is:
        /node-name-1/node-name-2/node-name-N

    The path to the root node is /.

This prevents the access to path[0] from ever being out-of-bounds.

Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
Message-ID: <20231010092822.qo2nxc3g47t26dqs@google.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

Test: N/A
Change-Id: I8efee39a06fa62f1f057a975e8133a295be0a656
2023-10-11 17:02:20 +01:00
Pierre-Clément Tosi
10b6dbab70 ANDROID: Revert "libfdt: fdt_path_offset_namelen: Reject empty paths"
This reverts commit 3c28f3e3a1.

Now that this change has been upstreamed, revert the Android patch in
order to cherry-pick the upstream one.

Test: N/A
Change-Id: I5295898fa6670436533290f32a10e3f672e2696c
2023-10-11 17:01:58 +01:00
Pierre-Clément Tosi
c8d1d863ab ANDROID: bazel: Clean up lexer and parser rules
Simplify the build file as

- dtc_gen creates an unnecessarily broad (and confusing) dependency list
  by using glob([".h"]) as its header list. Instead, dtc now lists
  explicitly the few headers it actually needs;
- generating dtc-lexer.lex.c does not require dtc-parser.{c,h};
- Bison can be told to directly create dtc-parser.{c,h} so no need for
  an unnecessarily broad copying of *.[ch] to move some intermediate
  results.

As a result, we get two genrule() wrapping the source files respectively
generated through lex and bison, which can be listed as srcs of dtc.

Test: bazel build //:all
Change-Id: I238d963af8a338c46f39c8ba9e4314fe536948cf
2023-10-11 16:54:04 +01:00
Pierre-Clément Tosi
6127032bf7 ANDROID: bazel: Fix dtc header dependencies
As dtc compiles util.c, which includes util.h and version_non_gen.h
(or version_gen.h upstream), the cc_binary should list those
dependencies explicitly so that a change in them triggers a rebuild.

Furthermore, dtc also depends on dtc.h and srcpos.h, which are only
found as dependencies by Bazel through the overkill glob(["*.h"]) header
list of dtc_gen so list them explicitly here so that that cc_library can
be dropped.

Introduce the UTILS list to DRY the build file.

Test: bazel build //:dtc
Change-Id: I32076c65b60820dc91f6dc84c3ee3cad310c1db5
2023-10-11 16:53:57 +01:00
Pierre-Clément Tosi
170bf1d4ce ANDROID: Use -Wall and more when building libfdt
Build libfdt with the same warnings as the DTC tools. This effectively
starts using -Wno-missing-field-initializers, -Wno-unused-parameter, and
-Wall.

Test: m libfdt
Test: bazel build //:libfdt
Change-Id: I5a2ae1ee86b4613d0aa7a0174d235976d7be45cc
2023-10-11 16:02:56 +01:00
Pierre-Clément Tosi
6c25e96cf6 ANDROID: Use -Wno-macro-redefined for DTC tools
As we use the flag when building libfdt, also enable it for the tools.

Test: m dtc fdtget fdtoverlay
Test: bazel build //:all
Change-Id: I3c0775436bb9be1367e1937e99a6e87d1dce664c
2023-10-11 16:02:55 +01:00