Commit e9bf0c90 for libheif

commit e9bf0c90231b1546db4f8dbf49b3196e19d689d7
Author: Dirk Farin <dirk.farin@gmail.com>
Date:   Mon May 25 13:54:51 2026 +0200

    unci: only compute implied_offset if used

diff --git a/libheif/codecs/uncompressed/unc_boxes.cc b/libheif/codecs/uncompressed/unc_boxes.cc
index 8015252e..4e938104 100644
--- a/libheif/codecs/uncompressed/unc_boxes.cc
+++ b/libheif/codecs/uncompressed/unc_boxes.cc
@@ -840,7 +840,7 @@ Error Box_icef::parse(BitstreamRange& range, const heif_security_limits* limits)
   m_unit_infos.resize(num_compressed_units);

   for (uint32_t r = 0; r < num_compressed_units; r++) {
-    struct CompressedUnitInfo unitInfo;
+    CompressedUnitInfo unitInfo;
     if (unit_offset_code == 0) {
       unitInfo.unit_offset = implied_offset;
     } else {
@@ -856,7 +856,11 @@ Error Box_icef::parse(BitstreamRange& range, const heif_security_limits* limits)
               "icef unit offset + size exceeds 64 bit range"};
     }

-    implied_offset += unitInfo.unit_size;
+    // implied_offset is only used as unit_offset when unit_offset_code==0.
+    // Accumulating it for other offset codes would be unused and could overflow, so only do it if needed.
+    if (unit_offset_code == 0) {
+      implied_offset += unitInfo.unit_size;
+    }

     if (range.get_error() != Error::Ok) {
       return range.get_error();