)]}'
{
  "commit": "66bc428f93546065ca73779ebefd1082244ecea2",
  "tree": "09c8940fa17df80cdd9d21cf9e4a8b463ffbaa3f",
  "parents": [
    "e2833f27c17e87021dae45c0d45025afd51f1e7e"
  ],
  "author": {
    "name": "Tom Cherry",
    "email": "tomcherry@google.com",
    "time": "Thu Nov 08 13:40:52 2018 -0800"
  },
  "committer": {
    "name": "Tom Cherry",
    "email": "tomcherry@google.com",
    "time": "Thu Nov 08 21:50:19 2018 +0000"
  },
  "message": "linker: changes to init work arounds\n\nChange three things regarding the work around to the fact that init is\nspecial:\n\n1) Only first stage init is special, so we change the check to include\n   accessing /proc/self/exe, which if is available, means that we\u0027re\n   not first stage init and do not need any work arounds.\n2) Fix the fact that /init may be a symlink and may need readlink()\n3) Suppress errors from realpath_fd() since these are expected to fail\n   due to /proc not being mounted.\n\nBug: 80395578\nTest: sailfish boots without the audit generated from calling stat()\n      on /init and without the errors from realpath_fd()\n\nChange-Id: I266f1486b142cb9a41ec791eba74122bdf38cf12\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0470d7a2f1648048956f3db4a19916e198d302ba",
      "old_mode": 33188,
      "old_path": "linker/linker.cpp",
      "new_id": "6d646a2b331612cf5210f7b54dc19c2a5de18bb3",
      "new_mode": 33188,
      "new_path": "linker/linker.cpp"
    },
    {
      "type": "modify",
      "old_id": "f7c496a2527929a461777cbbc475bcf852bd7fea",
      "old_mode": 33188,
      "old_path": "linker/linker_main.cpp",
      "new_id": "d88fc75442066ed63f2eee6cc7080cf8b0bce97d",
      "new_mode": 33188,
      "new_path": "linker/linker_main.cpp"
    },
    {
      "type": "modify",
      "old_id": "8bf4c94c0ec89a97f9f2b40439f8e3d5660b886e",
      "old_mode": 33188,
      "old_path": "linker/linker_phdr.cpp",
      "new_id": "741d4e06d7ada9a4fda6e83d1768b556df1a078a",
      "new_mode": 33188,
      "new_path": "linker/linker_phdr.cpp"
    },
    {
      "type": "modify",
      "old_id": "795b01d778c02065e7686e8f54ef8df7616c9a06",
      "old_mode": 33188,
      "old_path": "linker/linker_soinfo.cpp",
      "new_id": "e6302970759e24a6225643c4ca62e1e4177333b6",
      "new_mode": 33188,
      "new_path": "linker/linker_soinfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "6b9aec9fa753c1fefcf3f7a1b96c315d8f3928b3",
      "old_mode": 33188,
      "old_path": "linker/linker_utils.cpp",
      "new_id": "72a8fa8feebb42470a5d97507092cd84beba26df",
      "new_mode": 33188,
      "new_path": "linker/linker_utils.cpp"
    },
    {
      "type": "modify",
      "old_id": "b15082d9584838623b572024a1ae81f132f2d489",
      "old_mode": 33188,
      "old_path": "linker/linker_utils.h",
      "new_id": "34a597b98826ed81a37cc579be4334d2a1cc3886",
      "new_mode": 33188,
      "new_path": "linker/linker_utils.h"
    }
  ]
}
