)]}'
{
  "commit": "8d5a792d56cfcc8af7b51b7d84625fd5b76df951",
  "tree": "8468101742083dcc040e4df893c6268210485cad",
  "parents": [
    "16d6eb8b6204a91bc40b9431ba31a9503169b00b"
  ],
  "author": {
    "name": "Lei Zhang",
    "email": "thestig@chromium.org",
    "time": "Mon Aug 28 17:54:05 2023 +0000"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Aug 28 17:54:05 2023 +0000"
  },
  "message": "Prevent crashes in win32 GDI code due to null bitmap pointers\n\nThis CL adds CFX_DIBBase::RealizeIfNeeded() as the spiritial successor\nto CFX_DIBExtractor, which https://pdfium-review.googlesource.com/108371\nremoved. This is necessary for interactions with some GDI APIs that do\nnot operate on scanlines and require a pointer to a contiguous bitmap\nbuffer.\n\nCall RealizeIfNeeded() closer to where the GDI API calls happen, instead\nof exactly where the prior CFX_DIBExtractor uses were. With the\nRealizeIfNeeded() calls in place, the GDI APIs will no longer receive\nnull buffer pointers and crash.\n\nUnlike CFX_DIBExtractor, RealizeIfNeeded() won\u0027t create a new\nCFX_DIBitmap when an existing CFX_DIBBase already has a contiguous\nbuffer.\n\nBug: chromium:1466498\nChange-Id: I33b46a79c2f0a2ad467e40171db328c4f74b8153\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/111433\nCommit-Queue: Nigi \u003cnigi@chromium.org\u003e\nReviewed-by: Nigi \u003cnigi@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b64bc28d6b39a48b06dfcae98da775ce86828c69",
      "old_mode": 33188,
      "old_path": "core/fxge/dib/cfx_dibbase.cpp",
      "new_id": "4aa586f767bea9344258e41e5ee6b9be6b3da700",
      "new_mode": 33188,
      "new_path": "core/fxge/dib/cfx_dibbase.cpp"
    },
    {
      "type": "modify",
      "old_id": "ebf1eacd89014ee691746a0b57290a599a76418a",
      "old_mode": 33188,
      "old_path": "core/fxge/dib/cfx_dibbase.h",
      "new_id": "63278887e6915124eddada699569d32c6ebfc6eb",
      "new_mode": 33188,
      "new_path": "core/fxge/dib/cfx_dibbase.h"
    },
    {
      "type": "modify",
      "old_id": "6ae582e3833595f3b91541157cf0d6dabbf2aa5f",
      "old_mode": 33188,
      "old_path": "core/fxge/win32/cgdi_device_driver.cpp",
      "new_id": "aa1d13ffbe517e52fb53c03c74532449adfdf36a",
      "new_mode": 33188,
      "new_path": "core/fxge/win32/cgdi_device_driver.cpp"
    },
    {
      "type": "modify",
      "old_id": "42cf505004cd5ffafadb3fd119172044c23d0d64",
      "old_mode": 33188,
      "old_path": "core/fxge/win32/cgdi_plus_ext.cpp",
      "new_id": "f6a9181f842d83b2f853d5e8bbdbe756b9e8e02f",
      "new_mode": 33188,
      "new_path": "core/fxge/win32/cgdi_plus_ext.cpp"
    }
  ]
}
