)]}'
{
  "log": [
    {
      "commit": "5e2285d3ccdbb64a49ad2e5e521f50c897a3954d",
      "tree": "cd56c251f1710652fad3b84121248a12071b42e0",
      "parents": [
        "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 22 12:19:05 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 22 16:05:03 2017 -0800"
      },
      "message": "Allocate thread local buffers in __init_tls.\n\nThread local buffers were using pthread_setspecific for storage with\nlazy initialization. pthread_setspecific shares TLS slots between the\nlinker and libc.so, so thread local buffers being initialized in a\ndifferent order between libc.so and the linker meant that bad things\nwould happen (manifesting as snprintf not working because the\nlocale was mangled)\n\nBug: http://b/20464031\nTest: /data/nativetest64/bionic-unit-tests/bionic-unit-tests\n      everything passes\nTest: /data/nativetest/bionic-unit-tests/bionic-unit-tests\n      thread_local tests are failing both before and after (KUSER_HELPERS?)\nTest: /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static\n      no additional failures\nChange-Id: I9f445a77c6e86979f3fa49c4a5feecf6ec2b0c3f\n"
    },
    {
      "commit": "6d7c1ee9ffefa98358b7043a8984366098c21b61",
      "tree": "d804189d541dc3dab73b0e1bf54d8e4fa8f421f3",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Mar 04 18:04:41 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Mar 04 18:04:41 2016 -0800"
      },
      "message": "forkpty: set the output fd to -1 on the slave side.\n\nglibc, FreeBSD, OpenBSD, and Darwin all just leave the fd unchanged and\npossibly uninitialized. Setting it to -1 seems friendlier, though.\n\nBug: http://b/27506278\nChange-Id: I7acdc8eecbea4404d5fb4ba0b4d572245a323886\n"
    },
    {
      "commit": "6170693e28dd72a1517c267f3f62b3f37477b8bb",
      "tree": "f7cf73e397d83074a6da0b6cce4459b51af334cf",
      "parents": [
        "611fd2cc91f79be6759f6e630e1e81998326dfe8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 31 10:56:58 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 31 10:56:58 2015 -0700"
      },
      "message": "Make ThreadLocalBuffer a class rather than a macro.\n\nBug: 19995392\nChange-Id: I497c512648fbe66257da3fb3bcd5c9911f983705\n"
    },
    {
      "commit": "a381fe8ebcd196614a00f4dca3539e0860ef9e84",
      "tree": "3554d98520ded579dcc9ad2e5e4f36e23f3f7b5f",
      "parents": [
        "3592743f7191c69ae1fd2d7e01222bd380d93d3e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 09 20:30:23 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 09 20:30:23 2014 -0800"
      },
      "message": "Fix ptsname(3) and ttyname(3) to use TLS.\n\nBe safe by default.\n\nChange-Id: I6c4a3f1fd4eee3a651b3162ce95b7e873de57521\n"
    },
    {
      "commit": "65f0df78730fb0d6994f9d4d0a16dc0241081d94",
      "tree": "d05ddfa7188f1943afb3132a9e5da9c575db751c",
      "parents": [
        "91a61f77e203bf519c28f9331b9c8db731869499"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 03 14:39:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 03 15:55:34 2014 -0800"
      },
      "message": "Implement \u003cpty.h\u003e.\n\nBased on the package/apps/Terminal implementation. I\u0027ll switch them over\nshortly. This also lets us build the toybox version of netcat.\n\nChange-Id: Ia922a100141a67409264b43b937eeca07b21f344\n"
    },
    {
      "commit": "4916706cfe590eb06c9b5bd4bd402ce056034d51",
      "tree": "75e0434f53123a7f34ffb405b84899bbacc80b38",
      "parents": [
        "50a9630cc26cbc1e38e3ddc589f04fa5cd91697b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 17:24:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 19:55:23 2014 -0700"
      },
      "message": "Fix linkage of grantpt(3).\n\nAlso clean up the implementation of all the pty functions, add tests,\nand fix the stub implementations of ttyname(3) and ttyname_r(3).\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58888\nChange-Id: I0fb36438cd1abf8d4e87c29415f03db9ba13c3c2\n"
    }
  ]
}
