)]}'
{
  "commit": "bc9183af0a6bebb9de04bafa1ac2137d19bd6d8f",
  "tree": "b18139bf448c54e9ed513a85a069e8705786755f",
  "parents": [
    "4f2299db6add597e5549d31bd606a3e80eba7cdd"
  ],
  "author": {
    "name": "Mitch Phillips",
    "email": "31459023+hctim@users.noreply.github.com",
    "time": "Wed Feb 05 15:39:03 2020 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Sep 30 11:42:42 2020 -0700"
  },
  "message": "[GWP-ASan] Crash Handler API.\n\nSummary:\nForewarning: This patch looks big in #LOC changed. I promise it\u0027s not that bad, it just moves a lot of content from one file to another. I\u0027ve gone ahead and left inline comments on Phabricator for sections where this has happened.\n\nThis patch:\n 1. Introduces the crash handler API (crash_handler_api.h).\n 2. Moves information required for out-of-process crash handling into an AllocatorState. This is a trivially-copied POD struct that designed to be recovered from a deceased process, and used by the crash handler to create a GWP-ASan report (along with the other trivially-copied Metadata struct).\n 3. Implements the crash handler API using the AllocatorState and Metadata.\n 4. Adds tests for the crash handler.\n 5. Reimplements the (now optionally linked by the supporting allocator) in-process crash handler (i.e. the segv handler) using the new crash handler API.\n 6. Minor updates Scudo \u0026 Scudo Standalone to fix compatibility.\n 7. Changed capitalisation of errors (e.g. /s/Use after free/Use After Free).\n\nReviewers: cryptoad, eugenis, jfb\n\nReviewed By: eugenis\n\nSubscribers: merge_guards_bot, pcc, jfb, dexonsmith, mgorny, cryptoad, #sanitizers, llvm-commits\n\nTags: #sanitizers, #llvm\n\nDifferential Revision: https://reviews.llvm.org/D73557\n\nGitOrigin-RevId: a62586846fa90054bd9224912b07095d2fca662c\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44935817f8e9174fe435783d8fd51f37a1c19734",
      "new_mode": 33188,
      "new_path": "common.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d197711c77fc599e3c8250e535150af60a00a418",
      "new_mode": 33188,
      "new_path": "common.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f287d0216dcc251650dd19b2a21e401ea65ce369",
      "new_mode": 33188,
      "new_path": "crash_handler.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "db9e864dc059fcdf26a7be3bf6ab35409a44a60c",
      "new_mode": 33188,
      "new_path": "crash_handler.h"
    },
    {
      "type": "modify",
      "old_id": "5e6008e6a2c056e99f5090f4e727662dc7c04fbb",
      "old_mode": 33188,
      "old_path": "guarded_pool_allocator.cpp",
      "new_id": "cb8a18366ce6cf3d9f1e2ec3b69d4e659babc3c3",
      "new_mode": 33188,
      "new_path": "guarded_pool_allocator.cpp"
    },
    {
      "type": "modify",
      "old_id": "9a9bc10c5b6069adf9fcdde14ffd404eb3d6bcbd",
      "old_mode": 33188,
      "old_path": "guarded_pool_allocator.h",
      "new_id": "53d1635346f07c4715c9094738981cac8bbcc58a",
      "new_mode": 33188,
      "new_path": "guarded_pool_allocator.h"
    },
    {
      "type": "modify",
      "old_id": "6c9ee9f6506dd3c526b3d5c3290c1da57401aa7c",
      "old_mode": 33188,
      "old_path": "optional/backtrace.h",
      "new_id": "3a72eb3d08e8c6e1b21fe0c1aff055fc90070ee2",
      "new_mode": 33188,
      "new_path": "optional/backtrace.h"
    },
    {
      "type": "modify",
      "old_id": "a656c9b41d5da991c9f3603e21f1528933820e64",
      "old_mode": 33188,
      "old_path": "optional/backtrace_linux_libc.cpp",
      "new_id": "bb0aad224a14cb292d4fac71ee3993709cdc0aca",
      "new_mode": 33188,
      "new_path": "optional/backtrace_linux_libc.cpp"
    },
    {
      "type": "modify",
      "old_id": "5e07fd6f465ab2327ac40a3501e170ee1d6a702e",
      "old_mode": 33188,
      "old_path": "optional/backtrace_sanitizer_common.cpp",
      "new_id": "3ac4b52bfc271f25e7b9f9a4d27f62664816838a",
      "new_mode": 33188,
      "new_path": "optional/backtrace_sanitizer_common.cpp"
    },
    {
      "type": "modify",
      "old_id": "6c2167288d6c56082a40c7536d0c83d696a7590e",
      "old_mode": 33188,
      "old_path": "optional/options_parser.cpp",
      "new_id": "2e63862867456873b8b19db7dbeb7a8e68d9aa12",
      "new_mode": 33188,
      "new_path": "optional/options_parser.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "10af15055e2a864e89c4e03f66ae4bcff9868d62",
      "new_mode": 33188,
      "new_path": "optional/segv_handler.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f98c16be35b39175361958c61f300bf960f66b85",
      "new_mode": 33188,
      "new_path": "optional/segv_handler_posix.cpp"
    },
    {
      "type": "modify",
      "old_id": "ae3f3d45e9460731c38b33ed08ab5cedf6a8cd75",
      "old_mode": 33188,
      "old_path": "options.h",
      "new_id": "6fb43108b5deb226d60e346f89d6637b3b69aabd",
      "new_mode": 33188,
      "new_path": "options.h"
    },
    {
      "type": "modify",
      "old_id": "97500d314939dea2cba63b7e9b377e1bbdc60364",
      "old_mode": 33188,
      "old_path": "options.inc",
      "new_id": "3b941b19af5e0e8a7f50096ed1b06294339873ee",
      "new_mode": 33188,
      "new_path": "options.inc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "38e6ce0c940ba067458ed456ea3e3673683b2eec",
      "new_mode": 33188,
      "new_path": "platform_specific/common_posix.cpp"
    },
    {
      "type": "modify",
      "old_id": "6cdb40cf9059a3fcb83a55b334b2e1ec965ba6c8",
      "old_mode": 33188,
      "old_path": "platform_specific/guarded_pool_allocator_posix.cpp",
      "new_id": "bef4ef547417afcebb6834d1b28dbce81b6d3b9b",
      "new_mode": 33188,
      "new_path": "platform_specific/guarded_pool_allocator_posix.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b2923512e614dc91ceb1e033f239e7e93ebf31ba",
      "new_mode": 33188,
      "new_path": "platform_specific/utilities_posix.cpp"
    },
    {
      "type": "modify",
      "old_id": "90493da7e03858520d53e87c78e1180040a83235",
      "old_mode": 33188,
      "old_path": "random.cpp",
      "new_id": "d8efe624d990f88695355356d6b027b53b37df6d",
      "new_mode": 33188,
      "new_path": "random.cpp"
    },
    {
      "type": "modify",
      "old_id": "6dccdb8c00116fc1f698880192b4f29ab6588b7b",
      "old_mode": 33188,
      "old_path": "tests/backtrace.cpp",
      "new_id": "bc81f35cb379fc28896215fe5629542282196362",
      "new_mode": 33188,
      "new_path": "tests/backtrace.cpp"
    },
    {
      "type": "modify",
      "old_id": "663db91b7eff79e8d9ecc53e4f6d013657e5820e",
      "old_mode": 33188,
      "old_path": "tests/basic.cpp",
      "new_id": "29f420d3027c820c2337715a3d450df03f581109",
      "new_mode": 33188,
      "new_path": "tests/basic.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aa7e2a49c815982de8f80da149822fe3e7332b12",
      "new_mode": 33188,
      "new_path": "tests/crash_handler_api.cpp"
    },
    {
      "type": "modify",
      "old_id": "0851d7e608f5f328259901f24916a997755361b8",
      "old_mode": 33188,
      "old_path": "tests/harness.h",
      "new_id": "4bada14a016980ffa321eb226cd48c4ee6368f0e",
      "new_mode": 33188,
      "new_path": "tests/harness.h"
    },
    {
      "type": "modify",
      "old_id": "e823aeb370cfa767a6fcf7cf81b81161a2a041c4",
      "old_mode": 33188,
      "old_path": "tests/optional/printf_sanitizer_common.cpp",
      "new_id": "ea7141b46ac8d1f3f0a408a8c57189d123beb575",
      "new_mode": 33188,
      "new_path": "tests/optional/printf_sanitizer_common.cpp"
    },
    {
      "type": "modify",
      "old_id": "33b57484a1a7212cb98f24068d76b44b27f56b2d",
      "old_mode": 33188,
      "old_path": "tests/thread_contention.cpp",
      "new_id": "0992b97b316fa2f31453cef3736282f9af2b2641",
      "new_mode": 33188,
      "new_path": "tests/thread_contention.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c307b381fe5fa5114e4da290e7b2c9fc6e6b9121",
      "new_mode": 33188,
      "new_path": "utilities.h"
    }
  ]
}
