)]}'
{
  "commit": "0f8f345e6faaf467922942528f60fdfcae89c839",
  "tree": "25dcaff17071fafaa5204c56fa2cc001f98d5b3a",
  "parents": [
    "884008998468d42ed49258c10babbb2d1f2b98b7"
  ],
  "author": {
    "name": "Vlad Tsyrklevich",
    "email": "vtsyrklevich@chromium.org",
    "time": "Fri Nov 10 23:50:23 2017 +0000"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri Nov 10 23:50:23 2017 +0000"
  },
  "message": "[CFI] Add protected memory container class\n\nThis change introduces a ProtectedMemory container class intended to\nstore dynamically resolved function pointers for cross-DSO calls that\nmust be exempted from Control Flow Integrity indirect call checking.\nThese function pointers can not be checked by cfi-icall, instead we\nplace them in read-only memory and set them writable only when they\nneed to be initialized.  ProtectedMemory is only suitable for\nstoring data in global/static variables, a follow-up change will\nintroduce a container class that allows dynamically allocating\nmultiple instances of a given type.\n\nProtectedMemory currently only works on Linux and macOS, its use is\na no-op on other platforms.\n\nThis change also introduces two helper macros to easily call function\npointers stored in ProtectedMemory containers without cfi-icall checks\napplied in order to avoid sprinkling no_sanitize(\"cfi-icall\") attributes\nthroughout the source code and encouraging its misuse.\n\nBug: 771365\nChange-Id: Ic9433095d9550ae8478ad9931ec5e3c37edb23ec\nReviewed-on: https://chromium-review.googlesource.com/706859\nCommit-Queue: Peter Collingbourne \u003cpcc@chromium.org\u003e\nReviewed-by: Peter Collingbourne \u003cpcc@chromium.org\u003e\nReviewed-by: Mark Mentovai \u003cmark@chromium.org\u003e\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\nReviewed-by: Will Harris \u003cwfh@chromium.org\u003e\nReviewed-by: Chris Palmer \u003cpalmer@chromium.org\u003e\nCr-Original-Commit-Position: refs/heads/master@{#515747}\nCr-Mirrored-From: https://chromium.googlesource.com/chromium/src\nCr-Mirrored-Commit: 36d1a861ddf153756345ca1904a87c15504188fd",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2f2dbaa4ba77a810fe084163b1f4069d444fcfec",
      "old_mode": 33261,
      "old_path": "tools/gn/bootstrap/bootstrap.py",
      "new_id": "8300c3b10460d8cac7acb9897f22dce507639cf2",
      "new_mode": 33261,
      "new_path": "tools/gn/bootstrap/bootstrap.py"
    }
  ]
}
