)]}'
{
  "commit": "734beec3d48a7ea5cfe3bd0815676181ea698cc7",
  "tree": "4a288b288b56d549c23e25166de6be1b86729c79",
  "parents": [
    "83590680649dc04ce8a98cd85b6356e1d6066564"
  ],
  "author": {
    "name": "Peter Collingbourne",
    "email": "pcc@google.com",
    "time": "Wed Nov 14 12:41:41 2018 -0800"
  },
  "committer": {
    "name": "Peter Collingbourne",
    "email": "pcc@google.com",
    "time": "Fri Nov 16 14:37:08 2018 -0800"
  },
  "message": "Allocate a small guard region around the shadow call stack.\n\nThis lets us do two things:\n\n1) Make setjmp and longjmp compatible with shadow call stack.\n   To avoid leaking the shadow call stack address into memory, only the\n   lower log2(SCS_SIZE) bits of x18 are stored to jmp_buf. This requires\n   allocating an additional guard page so that we\u0027re guaranteed to be\n   able to allocate a sufficiently aligned SCS.\n\n2) SCS overflow detection. Overflows now result in a SIGSEGV instead\n   of corrupting the allocation that comes after it.\n\nChange-Id: I04d6634f96162bf625684672a87fba8b402b7fd1\nTest: bionic-unit-tests\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5e62c2825ea56d317ae3964bf2f957c10dfad827",
      "old_mode": 33188,
      "old_path": "libc/arch-arm64/bionic/setjmp.S",
      "new_id": "a2b23702a4fb4961a86e6983b63f13794901b261",
      "new_mode": 33188,
      "new_path": "libc/arch-arm64/bionic/setjmp.S"
    },
    {
      "type": "modify",
      "old_id": "720a3aee5a5076f8eb7be43054eecacf12f5fd08",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_create.cpp",
      "new_id": "6f632e85125cbcda65ab7df3133ce311a128d975",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_create.cpp"
    },
    {
      "type": "modify",
      "old_id": "a884be51d1020007aed68e2e5fe313900dfa01fe",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_exit.cpp",
      "new_id": "2d4d6cfed301ab7baea7bd2de53b08c442fe7620",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_exit.cpp"
    },
    {
      "type": "modify",
      "old_id": "3d58121135f4b182d5bb2877de86affb29416803",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_internal.h",
      "new_id": "81b885aac6ffb0f4229ee8abf612e8e7529afc0c",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_internal.h"
    },
    {
      "type": "modify",
      "old_id": "9ae1c8dd1a6a528af99b7ac3fe841c36cf51efa8",
      "old_mode": 33188,
      "old_path": "libc/private/bionic_constants.h",
      "new_id": "e64c826a48d6a914d23c9a2b852fa3e2240b7fb1",
      "new_mode": 33188,
      "new_path": "libc/private/bionic_constants.h"
    },
    {
      "type": "modify",
      "old_id": "6a644b61a98248212dc2c8f4fa1f4c9db3648b88",
      "old_mode": 33188,
      "old_path": "tests/Android.bp",
      "new_id": "899fc6691d994f5e524a8c4813340001ed993069",
      "new_mode": 33188,
      "new_path": "tests/Android.bp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "24cb347bb62399bcbdfa342cab35fb6762215a4c",
      "new_mode": 33188,
      "new_path": "tests/scs_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "dde0be1622a46526527f533757dc091691a55322",
      "old_mode": 33188,
      "old_path": "tests/setjmp_test.cpp",
      "new_id": "44d8af142789ccfb7bce6c968e2291d5de9b9d0e",
      "new_mode": 33188,
      "new_path": "tests/setjmp_test.cpp"
    }
  ]
}
