)]}'
{
  "commit": "6029035b03e67a33638826b5851f91d4fc12f501",
  "tree": "eb1cd4dd0bfc10767475102d0f78dda7937c4071",
  "parents": [
    "3b3d44682205236ac19d0544f403e8a245519e3e"
  ],
  "author": {
    "name": "bazel.build machine account",
    "email": "ci.bazel@gmail.com",
    "time": "Mon Aug 17 22:36:39 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 17 22:36:39 2026 +0000"
  },
  "message": "[8.8.0] Fix Zip64 archive central directory extraction in ZipReader (https://github.com/bazelbuild/bazel/pull/30685) (#30764)\n\n### Description\n\nFixes #30681.\n\nIn commit b12c06a2d54684cdf9a83d9ecc634850a7858db6 (#30530),\n`ZipReader.readCentralDirectory()` was modified to compute the central\ndirectory start as `actualCenStart \u003d actualCenEnd -\nzipData.getCentralDirectorySize()`, replacing the parsed\n`zipData.getCentralDirectoryOffset()`.\n\nThis broke reading standard Zip64 archives where 32-bit EOCD fields do\nnot overflow (as the 76-byte Zip64 EOCD and locator sit between the\ncentral directory and the 32-bit EOCD, shifting the computed offset 76\nbytes into the central directory) or when `centralDirectorySize` is\n`0xFFFFFFFF`.\n\nThis change:\n1. Restores `ZipReader`\u0027s standard central directory parsing to use\n`zipData.getCentralDirectoryOffset()`.\n2. Populates `centralDirectorySize` in\n`Zip64EndOfCentralDirectory.read()`.\n3. Restricts the unadjusted SFX central directory start computation\nstrictly to `AdjustSfx`.\n4. Adds a unit test in `ZipReaderTest` covering Zip64 archives with\nvalid 32-bit EOCD offsets.\n\nCloses #30685.\n\nPiperOrigin-RevId: 966082613\nChange-Id: I4c9583901610aeed4ad4bfce75915b32eb6b2c86\n\nCommit\nhttps://github.com/bazelbuild/bazel/commit/3dd0a0577005b741b83020ba669e8f9276969af3\n\nCo-authored-by: Yun Peng \u003cpcloudy@google.com\u003e\nCo-authored-by: Ian (Hee) Cha \u003cheec@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d9b4b8b62c5426adb3c84011c76242df0bfcb698",
      "old_mode": 33188,
      "old_path": "src/java_tools/singlejar/java/com/google/devtools/build/zip/AdjustSfx.java",
      "new_id": "4e3d158bc8623e0608d457a4afe10e4ccce30206",
      "new_mode": 33188,
      "new_path": "src/java_tools/singlejar/java/com/google/devtools/build/zip/AdjustSfx.java"
    },
    {
      "type": "modify",
      "old_id": "58424b88ef5a236babb1ff3a073478f05aca8841",
      "old_mode": 33188,
      "old_path": "src/java_tools/singlejar/java/com/google/devtools/build/zip/Zip64EndOfCentralDirectory.java",
      "new_id": "9432f27d05ab15e92edd3a7070774e6929499487",
      "new_mode": 33188,
      "new_path": "src/java_tools/singlejar/java/com/google/devtools/build/zip/Zip64EndOfCentralDirectory.java"
    },
    {
      "type": "modify",
      "old_id": "0945431fe1139108c2251b750bd69ecdeada1ea0",
      "old_mode": 33188,
      "old_path": "src/java_tools/singlejar/java/com/google/devtools/build/zip/ZipReader.java",
      "new_id": "2769c027d2d05e8475e4a4c5b086d0ffbff4a0b4",
      "new_mode": 33188,
      "new_path": "src/java_tools/singlejar/java/com/google/devtools/build/zip/ZipReader.java"
    },
    {
      "type": "modify",
      "old_id": "ae3ae00bc50fa84fc6f1697483c255ec410102ea",
      "old_mode": 33188,
      "old_path": "src/java_tools/singlejar/javatests/com/google/devtools/build/zip/ZipReaderTest.java",
      "new_id": "4705df95e8b011a4a6c8190e3c4e132d01463361",
      "new_mode": 33188,
      "new_path": "src/java_tools/singlejar/javatests/com/google/devtools/build/zip/ZipReaderTest.java"
    }
  ]
}
