)]}'
{
  "commit": "2dc2a5feeaf3fc2f3e46ce8e20be1d296dd6d485",
  "tree": "a2638135686c7bd3223765a4d955a0d2a96766b8",
  "parents": [
    "f0328d1544dcd1a1f93996aeeeccf222657af25b"
  ],
  "author": {
    "name": "aleister1102",
    "email": "marucube35@gmail.com",
    "time": "Sun Jun 07 00:08:16 2026 +0700"
  },
  "committer": {
    "name": "aleister1102",
    "email": "marucube35@gmail.com",
    "time": "Sun Jun 07 00:20:09 2026 +0700"
  },
  "message": "fix(java): reject decoder push length exceeding input buffer capacity\n\nDecoderJNI.Wrapper.push(int length) validated only length \u003c 0. nativePush() stored input_length without an upper bound, and DecoderHandle did not retain the input buffer\u0027s allocation size, so new DecoderJNI.Wrapper(1).push(32) made BrotliDecoderDecompressStream read past the one-byte input allocation (heap out-of-bounds read).\n\nAdd an upper-bound check in Wrapper.push(), and as defense in depth store the allocation size in DecoderHandle and reject oversized input_length in nativePush(). Add DecoderJNITest covering rejection and a valid round trip.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e4edcf97c845fb3fcb4e1c58d169e186a3231f41",
      "old_mode": 33188,
      "old_path": "java/org/brotli/wrapper/dec/BUILD.bazel",
      "new_id": "db7b341534a30ac7d359e96cb13d5badb58bf61d",
      "new_mode": 33188,
      "new_path": "java/org/brotli/wrapper/dec/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "726a6d6c5781ed1116c2551c7d723c85a2471a22",
      "old_mode": 33188,
      "old_path": "java/org/brotli/wrapper/dec/DecoderJNI.java",
      "new_id": "01e07bae33092dfe6ed12aa89e5c83055c291781",
      "new_mode": 33188,
      "new_path": "java/org/brotli/wrapper/dec/DecoderJNI.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "99faf8f2f9b49295f38cbdc510eb550ce0a234da",
      "new_mode": 33188,
      "new_path": "java/org/brotli/wrapper/dec/DecoderJNITest.java"
    },
    {
      "type": "modify",
      "old_id": "a92d34ce1782cfec195a8d307a097b1fc929a8e3",
      "old_mode": 33188,
      "old_path": "java/org/brotli/wrapper/dec/decoder_jni.cc",
      "new_id": "1004babda41bd3c3d18e136afc6718dadaab9c7e",
      "new_mode": 33188,
      "new_path": "java/org/brotli/wrapper/dec/decoder_jni.cc"
    }
  ]
}
