)]}'
{
  "commit": "dcc3dc6e7519a01e456e75e4ddf976c26e2f0799",
  "tree": "fe930be019175d2770e67a8e4b82a36a986a8d01",
  "parents": [
    "3fe931553d7c602f4f89644d5973000cf9f01be3"
  ],
  "author": {
    "name": "Lei Zhang",
    "email": "thestig@chromium.org",
    "time": "Thu Apr 23 10:39:35 2026 -0700"
  },
  "committer": {
    "name": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Apr 23 10:39:35 2026 -0700"
  },
  "message": "Validate CPDF_Page\u0027s page dictionary input\n\nCPDF_Page currently does not validate the page dictionary it receives is\nvalid. This leads to inconsistent behavior when code in\nfpdf_editpage.cpp validates the page dictionary later. Fix this by\ncalling CPDF_Page::IsValidPageDictLoose() before creating CPDF_Page. Use\nIsValidPageDictLoose() to be tolerant of mildly out-of-spec PDFs.\n\nWithin CPDF_Page\u0027s constructor, make IsValidPageDictLoose() a\npre-condition. Then fix up the dictionary and add the /Type if it\nmissing. This ensures the rest of PDFium sees a spec-compliant page\ndictionary.\n\nBug: 504516117\nChange-Id: I6666ebd82c2dda6b5fd4a869677790c85b3752d3\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/146712\nReviewed-by: Andy Phan \u003candyphan@chromium.org\u003e\nCommit-Queue: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c22b9c5a1b30e375655c1672f1a4ce58968c865d",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_page.cpp",
      "new_id": "ac5ad067451037c321801d4fe7d18ffa818f4dfa",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_page.cpp"
    },
    {
      "type": "modify",
      "old_id": "f2db3bdcc9efc7b2d51e22da7611bf827e80ac56",
      "old_mode": 33188,
      "old_path": "fpdfsdk/fpdf_editpage.cpp",
      "new_id": "0a0d115796a8614f18fcb4ab8bb06692c3c8076e",
      "new_mode": 33188,
      "new_path": "fpdfsdk/fpdf_editpage.cpp"
    },
    {
      "type": "modify",
      "old_id": "c808459f44443ce0c072539ada72bf92d2bb6a24",
      "old_mode": 33188,
      "old_path": "fpdfsdk/fpdf_view.cpp",
      "new_id": "2b2f253a7edd7df6ff356e14b71aa35b4bd5315e",
      "new_mode": 33188,
      "new_path": "fpdfsdk/fpdf_view.cpp"
    },
    {
      "type": "modify",
      "old_id": "f8db18b9eb54a0f7efd6a2c88d026aa6ccfcf417",
      "old_mode": 33188,
      "old_path": "fpdfsdk/fpdfxfa/cpdfxfa_page.cpp",
      "new_id": "19fb95d04406a792df1269178c3daa7367f8a783",
      "new_mode": 33188,
      "new_path": "fpdfsdk/fpdfxfa/cpdfxfa_page.cpp"
    },
    {
      "type": "modify",
      "old_id": "888bc30b92796505703584439ac359590b88026c",
      "old_mode": 33188,
      "old_path": "fpdfsdk/fpdfxfa/cpdfxfa_page.h",
      "new_id": "248b076dca2ac3b4b6b2a320ba4b9ee77072bec1",
      "new_mode": 33188,
      "new_path": "fpdfsdk/fpdfxfa/cpdfxfa_page.h"
    }
  ]
}
