)]}'
{
  "commit": "a91cabca6e8c613f25e3a664179502d9a047fcab",
  "tree": "1f2225f99413e08894b4d67ddaa2adc3aa86e0b4",
  "parents": [
    "dcbd802564ed5075280e390bb747736983253846"
  ],
  "author": {
    "name": "Hui Yingst",
    "email": "nigi@chromium.org",
    "time": "Sat Mar 21 17:57:11 2020 +0000"
  },
  "committer": {
    "name": "Chromium commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Sat Mar 21 17:57:11 2020 +0000"
  },
  "message": "Fix rendering issue for PDFs with incorrect first-page hint data.\n\nFor a linearized PDF, sometimes the hint table can contain incorrect\ndata. For example, The test file in crbug.com/1012237 has a hint table\nwhich points the first page to the wrong object, and set the wrong\nobject number into |m_PageList[0]|. This results in fetching a\ndictionary of a non-page-type object for the first page and rendering\nthe first page blank.\n\nTo fix the issue, this CL creates CPDF_Document::IsValidPageObject() to\nvalidate if an object\u0027s type is \"Page\", and add this validation in\nCPDF_Document::LoadPages(). If the check fails, don\u0027t set this wrong\nobject number to |m_PageList[0]|. Instead, traverse the page tree to\nupdate |m_PageList|.\n\nBug: chromium:1012237\nChange-Id: I1e8745a48ed0cabe5478e9e8e1dda51fa0a8d53f\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/67490\nCommit-Queue: Hui Yingst \u003cnigi@chromium.org\u003e\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "467f8a58f84a7c39ec8b7e92fef0ed45d4a5f334",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/parser/cpdf_document.cpp",
      "new_id": "5e93c9ad52be402e4444cbb46da5b07dc5ebbe63",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/parser/cpdf_document.cpp"
    },
    {
      "type": "modify",
      "old_id": "abffb81c9778768e8ad11bac60796194dc724f2e",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/parser/cpdf_document.h",
      "new_id": "cf738f28f8c222bf21b4715f70417bbc8f25b1fc",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/parser/cpdf_document.h"
    },
    {
      "type": "modify",
      "old_id": "c469743d1a78c9b5a58907fad155e4c7eef3a3d9",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/parser/cpdf_document_unittest.cpp",
      "new_id": "c2a964ee59e8fe545f7a24696d47cb47c2b0789d",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/parser/cpdf_document_unittest.cpp"
    }
  ]
}
