)]}'
{
  "commit": "b6453c52ac55f85d7f88f04db6e320825cea9bf7",
  "tree": "b1ecbacb334303b5e0e0c2773700977eeb97b574",
  "parents": [
    "1089afb744de588d841ffdeed158dbcd113a8e02"
  ],
  "author": {
    "name": "Josh Gao",
    "email": "jmgao@google.com",
    "time": "Wed Jun 29 16:47:53 2016 -0700"
  },
  "committer": {
    "name": "Josh Gao",
    "email": "jmgao@google.com",
    "time": "Thu Jun 30 12:58:32 2016 -0700"
  },
  "message": "Only initialize the global stack protector once.\n\nBefore, dynamic executables would initialize the global stack protector\ntwice, once for the linker, and once for the executable. This worked\nbecause the result was the same for both initializations, because it\nused getauxval(AT_RANDOM), which won\u0027t be the case once arc4random gets\nused for it.\n\nBug: http://b/29622562\nChange-Id: I7718b1ba8ee8fac7127ab2360cb1088e510fef5c\nTest: ran the stack protector tests on angler (32/64bit, static/dynamic)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "01bb9bb7003d32160f4dc331ab854e3efb9ba6e5",
      "old_mode": 33188,
      "old_path": "libc/bionic/__libc_init_main_thread.cpp",
      "new_id": "2643eeef97d6b3805aa3fe2474ff2bb223eddc92",
      "new_mode": 33188,
      "new_path": "libc/bionic/__libc_init_main_thread.cpp"
    },
    {
      "type": "modify",
      "old_id": "2070c9c82d252f1dc286021781bc0c2e86191cc4",
      "old_mode": 33188,
      "old_path": "libc/bionic/libc_init_common.cpp",
      "new_id": "919080bb761f939f0c5f10400232539383e7a860",
      "new_mode": 33188,
      "new_path": "libc/bionic/libc_init_common.cpp"
    },
    {
      "type": "modify",
      "old_id": "ab48fb87f211326914d31d2a6d406a11f700d927",
      "old_mode": 33188,
      "old_path": "libc/bionic/libc_init_dynamic.cpp",
      "new_id": "43bca30d5a97069a99f20463dd9392efe9ae40b1",
      "new_mode": 33188,
      "new_path": "libc/bionic/libc_init_dynamic.cpp"
    },
    {
      "type": "modify",
      "old_id": "d1494d7caaa7c067c2c297f95cf3c9f2e990ca2b",
      "old_mode": 33188,
      "old_path": "libc/bionic/libc_init_static.cpp",
      "new_id": "5e06d39ce09ede7c4707930abf13eb1f8ba94ddd",
      "new_mode": 33188,
      "new_path": "libc/bionic/libc_init_static.cpp"
    },
    {
      "type": "modify",
      "old_id": "08d9bed9ede3b747935fd2ff81b4bd2235675baa",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_create.cpp",
      "new_id": "1956a8ffb2de12fa31737e620713725eeb07fe3e",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_create.cpp"
    },
    {
      "type": "modify",
      "old_id": "0bfbbf143b09aa79c1d3deb0eb22bd4cc24d0aeb",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_internal.h",
      "new_id": "d2abea0c1cf79fd5328acd3f628bd08942b2a9e7",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_internal.h"
    },
    {
      "type": "modify",
      "old_id": "b45c0c3701057b90929233b638d55c958a63e23b",
      "old_mode": 33188,
      "old_path": "libc/private/bionic_globals.h",
      "new_id": "94dd7e8590728081399b1b2700fcee64fbc602e4",
      "new_mode": 33188,
      "new_path": "libc/private/bionic_globals.h"
    }
  ]
}
