)]}'
{
  "commit": "84a8011ec69d0e2de271c05be7d62979608040d9",
  "tree": "efb471042d8aa50faa54b5c542bfd116ad481d66",
  "parents": [
    "b5e19ba4a63668eb79081588aad5af9f4e7a0bc6"
  ],
  "author": {
    "name": "Lei Zhang",
    "email": "thestig@chromium.org",
    "time": "Mon Nov 11 18:31:58 2024 +0000"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Nov 11 18:31:58 2024 +0000"
  },
  "message": "Fix FPDFPageObj_SetIsActive() crash\n\nWhen FPDFPageObj_SetIsActive() deactivates the sole page object,\nFPDFPage_GenerateContent() may delete the page object\u0027s content stream.\nWhen the page object gets reactivated, its content stream will have\nunexpectedly disappeared by the time the next FPDFPage_GenerateContent()\ncall gets made. This leads to a CHECK() failure crash in\nCPDF_PageContentManager::UpdateStream().\n\nFix this by adjusting CPDF_PageContentGenerator to avoid the crash.\nBy adding CPDF_PageContentManager::HasStreamAtIndex(),\nCPDF_PageContentGenerator can now call it to see if the content stream\nis gone. If it gone, call AddStream() instead of UpdateStream().\n\nWith the crash fixes, resolve a TODO and add the rest of the test case\nthat exercises FPDFPageObj_SetIsActive().\n\nBug: 378120423\nChange-Id: I7523a8dac6be881ee520747f81b0730f815d3144\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/125690\nReviewed-by: dan sinclair \u003cdsinclair@google.com\u003e\nCommit-Queue: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1639b5e4da4bc370fd67e101dc4f4e5c90037d8a",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp",
      "new_id": "ac86ce23ea66248ec004ce55731777b95cfb9dc0",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp"
    },
    {
      "type": "modify",
      "old_id": "676469e0c438d2d49a984ffc75db6082ecf444df",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/edit/cpdf_pagecontentmanager.cpp",
      "new_id": "c26decff3f4b0336fdfb26bff11094bcebf570f1",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/edit/cpdf_pagecontentmanager.cpp"
    },
    {
      "type": "modify",
      "old_id": "5785fc3baa3c59db2089f0474a7162b4fe57f9f7",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/edit/cpdf_pagecontentmanager.h",
      "new_id": "fcb41622e1dd97790e4d3d7a084a36f4cf2f4433",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/edit/cpdf_pagecontentmanager.h"
    },
    {
      "type": "modify",
      "old_id": "25c99324af854a881df5f79d23b33f654425de07",
      "old_mode": 33188,
      "old_path": "fpdfsdk/fpdf_editpage_embeddertest.cpp",
      "new_id": "066c88816879c3f3d4e2205486850c91b574be7c",
      "new_mode": 33188,
      "new_path": "fpdfsdk/fpdf_editpage_embeddertest.cpp"
    }
  ]
}
