[nelson] 31.20260429.103.9300 u-boot source

GitOrigin-RevId: 21f9a0a9775ab411a8f2cd970d4bdf4c9a823475
Change-Id: Ifeea713527e8aabca1d233ffcfb0f7bb10f2ad1e
Reviewed-on: https://turquoise-internal-review.googlesource.com/c/third_party/u-boot/+/1649105
Reviewed-by: David Pursell <dpursell@google.com>
diff --git a/lib/fuchsia/firmware_sdk/pkg/zbi/zbi.c b/lib/fuchsia/firmware_sdk/pkg/zbi/zbi.c
index 112fbba..5b901dc 100644
--- a/lib/fuchsia/firmware_sdk/pkg/zbi/zbi.c
+++ b/lib/fuchsia/firmware_sdk/pkg/zbi/zbi.c
@@ -137,6 +137,10 @@
   const uint32_t totalSize = (uint32_t)sizeof(zbi_header_t) + header->length;
   uint32_t offset = sizeof(zbi_header_t);
   while (offset < totalSize) {
+    if (offset + sizeof(zbi_header_t) > totalSize) {
+      return ZBI_RESULT_ERR_TRUNCATED;
+    }
+
     zbi_header_t* entryHeader = (zbi_header_t*)(base + offset);
 
     zbi_result_t result = callback(entryHeader, entryHeader + 1, cookie);