)]}'
{
  "commit": "47a685e988e5000b5c4a99dc0e6be0fbd52cf455",
  "tree": "c3cb87afe1b1e5b944a734441dd9b52f349e6e4c",
  "parents": [
    "822a1d64e9c3cc602df1b3debe0532a2fe6f2848"
  ],
  "author": {
    "name": "K. Moon",
    "email": "kmoon@chromium.org",
    "time": "Tue Apr 12 05:37:33 2022 +0000"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Apr 12 05:37:33 2022 +0000"
  },
  "message": "[xfa] Fix GIF decode continuation\n\nFixes the GIF decoder to continue decoding across various boundaries.\nThe old logic only works for a single scanline within a single image\ndata sub-block, which obviously doesn\u0027t hold for real GIF images.\n\nCritically, the existing logic fails to recover from source buffer\nunderflow and destination buffer overflow correctly. To fix this:\n\n1. LZWDecompressor::Decode() doesn\u0027t discard previously-decoded state.\n2. ProgressiveDecoder incrementally feeds LZWDecompressor new data.\n\nNote that ProgressiveDecoder.BUG_895009 does not contain a valid GIF,\nwhich the fixed decoder correctly fails to decode; the test expectations\nhave been updated accordingly.\n\nFixed: pdfium:904, pdfium:1337\nChange-Id: I79db5c8962ff40a9b47e680f5e34e62950c1d495\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/92390\nAuto-Submit: K. Moon \u003ckmoon@chromium.org\u003e\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6ce9570b60a786ce2af1da6d497a66f49565c658",
      "old_mode": 33188,
      "old_path": "core/fxcodec/gif/cfx_gifcontext.cpp",
      "new_id": "a37799857c46154e546d027b9a122a6584c32023",
      "new_mode": 33188,
      "new_path": "core/fxcodec/gif/cfx_gifcontext.cpp"
    },
    {
      "type": "modify",
      "old_id": "50469aa66a199bf532f3cc378c59419452a83907",
      "old_mode": 33188,
      "old_path": "core/fxcodec/gif/lzw_decompressor.cpp",
      "new_id": "8325ce2019b2b0ea8d4cb39f010f438715ddce5f",
      "new_mode": 33188,
      "new_path": "core/fxcodec/gif/lzw_decompressor.cpp"
    },
    {
      "type": "modify",
      "old_id": "390cedbf61986cc2be2cffb14810cbb3196fe47b",
      "old_mode": 33188,
      "old_path": "core/fxcodec/gif/lzw_decompressor.h",
      "new_id": "b99b4736a53c14ba4b3179cd3c38858c3d35ae2f",
      "new_mode": 33188,
      "new_path": "core/fxcodec/gif/lzw_decompressor.h"
    },
    {
      "type": "modify",
      "old_id": "99e186ed43f744b4e50b74a905221087ef4f6c87",
      "old_mode": 33188,
      "old_path": "core/fxcodec/gif/lzw_decompressor_unittest.cpp",
      "new_id": "f14fa14dc1ebf9ce49b024c20d5a60905cd36a36",
      "new_mode": 33188,
      "new_path": "core/fxcodec/gif/lzw_decompressor_unittest.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c1b2c455832ad9760db55dd563875c5ace853b2",
      "old_mode": 33188,
      "old_path": "core/fxcodec/progressive_decoder_unittest.cpp",
      "new_id": "8902f6bbf551d7f56272a60c2b987ab3fe5d01aa",
      "new_mode": 33188,
      "new_path": "core/fxcodec/progressive_decoder_unittest.cpp"
    },
    {
      "type": "modify",
      "old_id": "24ca5c0e691994d0f6c718f30de9884f033ca671",
      "old_mode": 33188,
      "old_path": "testing/SUPPRESSIONS",
      "new_id": "0784cb328eb849d48e07ffd248300d3bee3ead61",
      "new_mode": 33188,
      "new_path": "testing/SUPPRESSIONS"
    },
    {
      "type": "modify",
      "old_id": "f019b66d8c39678d187d951188072b75e171fe1d",
      "old_mode": 33188,
      "old_path": "testing/fuzzers/pdf_lzw_fuzzer.cc",
      "new_id": "1292ec08384564f3ea047abc81a3c05678cb2e10",
      "new_mode": 33188,
      "new_path": "testing/fuzzers/pdf_lzw_fuzzer.cc"
    },
    {
      "type": "modify",
      "old_id": "08c11b081166f82aacae6c5df0f05ed7c13b966a",
      "old_mode": 33188,
      "old_path": "testing/resources/pixel/xfa_specific/bug_1337_expected.pdf.0.png",
      "new_id": "c0d8380588f416e70828be30e7db5692ed3e3ad9",
      "new_mode": 33188,
      "new_path": "testing/resources/pixel/xfa_specific/bug_1337_expected.pdf.0.png"
    }
  ]
}
