)]}'
{
  "commit": "8f0455e5a7eddcd347d871391b84964bdc399bb0",
  "tree": "2cd382984d35f9e9d75b32a4b3d320c53577cd31",
  "parents": [
    "60eb21841013d355c1adb06d3984423ad80d5580"
  ],
  "author": {
    "name": "Hui Yingst",
    "email": "nigi@chromium.org",
    "time": "Wed Sep 30 23:32:14 2020 +0000"
  },
  "committer": {
    "name": "Chromium commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Wed Sep 30 23:32:14 2020 +0000"
  },
  "message": "Fix potential segmentation faults during annotation rendering.\n\nTo fix crbug.com/237527, CPDF_Annot::DrawBorder() needs to be called,\nwhich will trigger the following issues:\n\n- In PDF ISO-32000-1:2008 Specification, table 166 indicates that the\n  acceptable values for Key \"S\" in a border style entry are \"S\", \"D\",\n  \"B\", \"I\", \"U\", which are all single characters. |style[1]| in\n  DrawBorder() will be out of bounds.\n\n- CPDF_Annot::DrawBorder() always gets its parameter |pDevice| as\n  nullptr from its caller , which will trigger segmentation fault when\n  CFX_RenderDevice::GetDeviceType() is called.\n\nThis CL fixes the above issues by giving the correct index number for\naccessing |style| in CPDF_Annot::DrawBorder(), and making\nCPDF_AnnotList::DisplayAnnots() accept a valid CFX_RenderDevice pointer\nas a parameter.\n\nThis CL also adds a TODO comment regarding adding support for rendering\n\"Underline\" border style.\n\nBug: chromium:237527\nChange-Id: Ie5a23d7a66fa0daba5d22a03eae5c36aae2d3d31\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/74170\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: Hui Yingst \u003cnigi@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4559fc4b57dd928ca3eab610fdaf9b659a62d127",
      "old_mode": 33188,
      "old_path": "core/fpdfdoc/cpdf_annot.cpp",
      "new_id": "14533f502e32d835065aa67a20cae8f1cabe2d79",
      "new_mode": 33188,
      "new_path": "core/fpdfdoc/cpdf_annot.cpp"
    },
    {
      "type": "modify",
      "old_id": "64ecffbfa403961939c2a380b3978d56cfbb55f1",
      "old_mode": 33188,
      "old_path": "core/fpdfdoc/cpdf_annotlist.cpp",
      "new_id": "6b53b64fec911a15d5da3b1494b3b15d1e3eb2fc",
      "new_mode": 33188,
      "new_path": "core/fpdfdoc/cpdf_annotlist.cpp"
    },
    {
      "type": "modify",
      "old_id": "85075cf5aafd8d8b7dd51524dfb46e73c6280b12",
      "old_mode": 33188,
      "old_path": "core/fpdfdoc/cpdf_annotlist.h",
      "new_id": "583ffce126a5b4544aa11c991d7c3738d73eebbb",
      "new_mode": 33188,
      "new_path": "core/fpdfdoc/cpdf_annotlist.h"
    },
    {
      "type": "modify",
      "old_id": "ab3ce611b5d49e44c7cc30045832941421d4e1d3",
      "old_mode": 33188,
      "old_path": "fpdfsdk/cpdfsdk_renderpage.cpp",
      "new_id": "42fd11efef6d9f927f0dcc40a4a676433794d7b8",
      "new_mode": 33188,
      "new_path": "fpdfsdk/cpdfsdk_renderpage.cpp"
    }
  ]
}
