)]}'
{
  "log": [
    {
      "commit": "3a657d01eca1529ba7002cbee44e149988834c9d",
      "tree": "975e264c3489de06c7047da78631d866403f4579",
      "parents": [
        "a4a28d90f30dad54a7851176ddffee435d75f83f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 27 12:33:22 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 30 12:39:55 2014 -0700"
      },
      "message": "Add extra strchr testing.\n\nChange-Id: Idd0a779eb3388e402cfcb4e0df40872320f8e155\n"
    },
    {
      "commit": "e5fdaa4f9d102461a4d8a865e6ca84666893b9e7",
      "tree": "c17c2b67e2f12161e67f9b337c9cdc11bd8eab5f",
      "parents": [
        "a04d2bc28e7d7fcaf34ad71e4a6608a13cf84197"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sat Jun 14 01:04:31 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sat Jun 14 01:04:31 2014 +0000"
      },
      "message": "Revert \"Backing this one out since the counterpart needs to be sent upstream.\"\n\nThis reverts commit a04d2bc28e7d7fcaf34ad71e4a6608a13cf84197.\n\nChange-Id: I1b49165ca5d4bafdba7948818256a6167a363aca\n"
    },
    {
      "commit": "a04d2bc28e7d7fcaf34ad71e4a6608a13cf84197",
      "tree": "729a98533b9d101d029556ca290d9524bd4b416e",
      "parents": [
        "5ee320dd35fafc11eaf90c62198e08c6670e35b4"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sat Jun 14 00:51:14 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sat Jun 14 00:51:14 2014 +0000"
      },
      "message": "Backing this one out since the counterpart needs to be sent upstream.\n\nThis reverts commit 5ee320dd35fafc11eaf90c62198e08c6670e35b4.\n\nChange-Id: I1a9c6b06c3aca595f01c629f7649be743dc48e77\n"
    },
    {
      "commit": "5ee320dd35fafc11eaf90c62198e08c6670e35b4",
      "tree": "c17c2b67e2f12161e67f9b337c9cdc11bd8eab5f",
      "parents": [
        "0f690d9eda1893e66223138d2b930eb3e0164820"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 12 10:55:13 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jun 13 15:35:05 2014 -0700"
      },
      "message": "Hides valloc(3)/pvalloc(3) on LP64.\n\nThese were removed from POSIX 2004. Hides the header declarations for all\ntargets, and hides the symbols for LP64.\n\nBug: 13935372\nChange-Id: Id592f67e9b7051517a05f536e1373b30162e669c\n"
    },
    {
      "commit": "24614b4729a4c8665193f5793b93019b37f779b1",
      "tree": "52631806852b1c584e50f04981e1f64d99106d3f",
      "parents": [
        "346fa721ca20e481a624930425d823d452e11dfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 15:35:22 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 15:35:22 2014 -0700"
      },
      "message": "Remove __memcmp16 from bionic.\n\nChange-Id: I2486d667d96c8900dd368d855f37c1327161efb7\n"
    },
    {
      "commit": "2aca7fe8214d9b4f421499a6f07579c888313649",
      "tree": "531b7f413c11b3441719b461b5260422f08bb1ed",
      "parents": [
        "2b8246fa755cf3e2828d702b6c27c2d238395fad"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Jun 10 14:50:16 2014 +0100"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Jun 10 17:51:10 2014 +0100"
      },
      "message": "AArch64: Fix memcmp16() test\n\n__memcmp16() should return an integer less than, equal to, or greater than\nzero. However the tests looks for a specific value.\n\nChange-Id: I06052f58f9ccc67146a3df9abb349c4bc19f090e\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "fce861498c8c4720c6ad2475a73bb4c3e55d6948",
      "tree": "4496b97573a1d8c1e1361a76aabcac63c90513c6",
      "parents": [
        "431aa4dc9282e23231ba9243f43fd3d49b5f88b3"
      ],
      "author": {
        "name": "Varvara Rainchik",
        "email": "varvara.rainchik@intel.com",
        "time": "Tue May 27 12:41:55 2014 +0400"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 05 11:08:09 2014 -0700"
      },
      "message": "Fix for slm-tuned memmove (both 32- and 64-bit).\n\nIntroduce a test for memmove that catches a fault.\nFix both 32- and 64-bit versions of slm-tuned memmove.\n\nChange-Id: Ib416def2610a0972e32c3b9b6055b54967643dc3\nSigned-off-by: Varvara Rainchik \u003cvarvara.rainchik@intel.com\u003e\n"
    },
    {
      "commit": "6c80ccdeed9d9b30e961f68229fe8171d79c5d14",
      "tree": "92081fee342cd265cb5c1e8269d5ca892b999f60",
      "parents": [
        "5265ad6273cd7c61d096ebe0e29e493915e7c63e"
      ],
      "author": {
        "name": "Shu Zhang",
        "email": "chazhang@nvidia.com",
        "time": "Mon May 12 18:12:15 2014 +0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 20 12:31:38 2014 -0700"
      },
      "message": "denver: optimize memmove\n\nOptimize 32-bit denver memmove with reversal memcpy.\n\nChange-Id: Iaad0a9475248cdd7e4f50d58bea9db1b767abc88\n"
    },
    {
      "commit": "0990d4fda898ada86e557f872f5cb7d16b138e3c",
      "tree": "43cd74258c43e23e8008c15aebdb0a3efd476f6c",
      "parents": [
        "77473e408504a7e298816b4071cd6902065b03d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 30 09:45:40 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 30 10:06:09 2014 -0700"
      },
      "message": "Make SIGRTMIN hide the real-time signals we use internally.\n\n__SIGRTMIN will continue to tell the truth. This matches glibc\u0027s\nbehavior (as evidenced by the fact that we don\u0027t need a special case\nin the strsignal test now).\n\nChange-Id: I1abe1681d516577afa8cd39c837ef12467f68dd2\n"
    },
    {
      "commit": "950a58e24d1019eb9d814dbb16f111a6b61e3f23",
      "tree": "5a91099e0ce1b9d552e7210fb914ba8d4d5ddb10",
      "parents": [
        "5f149f1bdef31d198c0e84fd8c904204d263e825"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 04 14:38:18 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 07 16:41:53 2014 -0700"
      },
      "message": "Add stpcpy/stpncpy.\n\nAdd tests for the above.\n\nAdd the fortify implementations of __stpcpy_chk and __stpncpy_chk.\n\nModify the strncpy test to cover more cases and use this template for\nstpncpy.\n\nAdd all of the fortify test cases.\n\nBug: 13746695\nChange-Id: I8c0f0d4991a878b8e8734fff12c8b73b07fdd344\n"
    },
    {
      "commit": "f04935c85e0b466f0d30d2cd4c0fa2fff62e7d6d",
      "tree": "8f1c6af75517892648f49adad9d4d5d44c20f49c",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Dec 20 18:43:21 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 06 20:12:21 2014 -0800"
      },
      "message": "Make sure that the same tests are on all platforms.\n\nIn order to be able to generate a list of tests for cts, the same set of\ntests must exist across all platforms. This CL adds empty tests where a\ntest was conditionally compiled out.\n\nThis CL creates a single library libBionicTests that includes all of\nthe tests found in bionic-unit-tests-static.\n\nAlso fix a few missing include files in some test files.\n\nTested by running and compiling the tests for every platform and\nverifying the same number of tests are on each platform.\n\nChange-Id: I9989d4bfebb0f9c409a0ce7e87169299eac605a2\n"
    },
    {
      "commit": "e5bbb6b6ab662503f06ceb20fa841d2e558d596d",
      "tree": "c031e82ae3400ce97aa416185c9118812569434c",
      "parents": [
        "ed45970ac5a182e512669cfa5c15b9f4fa783ad7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 03 18:39:10 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 03 18:42:41 2013 -0800"
      },
      "message": "Add strcmp/memcmp testing.\n\nBug: 9797008\nChange-Id: I11b1da060d29f7dacbb53f20a3e2082395b5bd8a\n"
    },
    {
      "commit": "b687ad3c3491fffe22507cafc9347e10cbf6bd31",
      "tree": "d854ac3533adc7268002f2ad299f4a6a9140b464",
      "parents": [
        "05ec00bf62ac168c9787a3d0640879ab3e502fe5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 06 17:32:11 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 10:36:21 2013 -0800"
      },
      "message": "Add new tests for memory/string routines.\n\nCreate a few generic testing functions to allow any memory/string tests\nto be created.\n\nAdd alignment tests for memcpy/memset/strcat/strcpy/strlen.\n\nAdd an overread test for memcpy/strcat/strcpy/strlen. This test attempts\nto verify that the functions do not read past the end of their buffers\n(src buffer in the case of src/dst functions).\n\nBug: 9797008\n\nChange-Id: Ib3223ca1b99e729ae8229adc2d03f4dc3103d97c\n"
    },
    {
      "commit": "baa91f4f8974b6e9a81fa3aa49f051b3bf823653",
      "tree": "5107a2ba56f4f360dd171abaa3f84e360ab0ab5b",
      "parents": [
        "aa2733d17b87c607fccbd6e6a0f44d2d411ffd77"
      ],
      "author": {
        "name": "Alexander Ivchenko",
        "email": "alexander.ivchenko@intel.com",
        "time": "Thu Jun 27 12:55:46 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 17:57:23 2013 -0700"
      },
      "message": "Add ssse3 implementation of __memcmp16.\n\n__memcmp16 was missing in x86. Also added C-version for backward\ncompatibility. Added bionic test for __memcmp16 and for wmemcmp.\n\nChange-Id: I33718441e7ee343cdb021d91dbeaf9ce2d4d7eb4\nSigned-off-by: Alexander Ivchenko \u003calexander.ivchenko@intel.com\u003e\n"
    },
    {
      "commit": "13476deec46d7ba101c1f76b8ddcaab9d0b96b84",
      "tree": "7b04e507eeb4ca2b169904d5657751b6d79cc961",
      "parents": [
        "0671393072a78e75a726c58aa3ca718e55eeac3e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 03 10:58:06 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 04 11:55:08 2013 -0700"
      },
      "message": "Add tests for __strcpy_chk()\n\nChange-Id: I5675d04fcd471732c1b87b83879a54fbcd27762e\n"
    },
    {
      "commit": "cf870199d576bdfc339b7fb016c9f6fe7f2c87ed",
      "tree": "e4bdb361862de3efd9b907379d0fe3f2ad3f4ae2",
      "parents": [
        "72f59c84fd73a0a701ce6448d103e9021c1cb060"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu May 30 16:48:53 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri May 31 09:07:46 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: strcat / strncat optimize\n\n__strcat_chk and __strncat_chk are slightly inefficient,\nbecause they end up traversing over the same memory region\ntwo times.\n\nThis change optimizes __strcat_chk / __strncat_chk so they\nonly access the memory once. Although I haven\u0027t benchmarked these\nchanges, it should improve the performance of these functions.\n\n__strlen_chk - expose this function, even if -D_FORTIFY_SOURCE\nisn\u0027t defined. This is needed to compile libc itself without\n-D_FORTIFY_SOURCE.\n\nChange-Id: Id2c70dff55a276b47c59db27a03734d659f84b74\n"
    },
    {
      "commit": "4f40e511b0612ea099ab5b0843977fe7a49372fd",
      "tree": "c0118aed430408fa8bf803ffabccb377eaefbb0b",
      "parents": [
        "5e3b502b6b56634953ea152409363088974fa5e9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 19 16:54:22 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu May 02 13:58:03 2013 -0700"
      },
      "message": "libc: cleanup strchr\n\nMove strchr to a .cpp file, and change to bionic directory.\n\nChange-Id: I64ade7df326c0a9a714aca4caf5647b6833b1c97\n"
    },
    {
      "commit": "1aae9bd170883805f2e7975cd3dbd2502b083cc1",
      "tree": "de73c01b4e8b61a11b54e8c4ecc8de222c4b0872",
      "parents": [
        "c6dc62f09c814b9688aee83e80dcfe80cb0ef604"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Apr 29 14:07:06 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Apr 29 15:22:10 2013 -0700"
      },
      "message": "strncpy: implement _FORTIFY_SOURCE\u003d2\n\nAdd support for fortify source level 2 to strncpy.\nThis will enable detection of more areas where strncpy\nis used inappropriately. For example, this would have detected\nbug 8727221.\n\nMove the fortify_source tests out of string_test.cpp, and\nput it into fortify1_test.cpp.\n\nCreate a new fortify2_test.cpp file, which copies all\nthe tests in fortify1_test.cpp, and adds fortify_source level\n2 specific tests.\n\nChange-Id: Ica0fba531cc7d0609e4f23b8176739b13f7f7a83\n"
    },
    {
      "commit": "a44e9afdd16105d6f36319cb538666d9cc78435a",
      "tree": "8606530bcdef438dc305894c805f0713edad5306",
      "parents": [
        "f3fe19459fd9263e8cc8a413a5313b1ec3cf3975"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jan 17 15:41:33 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jan 17 15:41:33 2013 -0800"
      },
      "message": "FORTIFY_SOURCE: optimize\n\nDon\u0027t do the fortify_source checks if we can determine, at\ncompile time, that the provided operation is safe.\n\nThis avoids silliness like calling fortify source on things like:\n\n  size_t len \u003d strlen(\"asdf\");\n  printf(\"%d\\n\", len);\n\nand allows the compiler to optimize this code to:\n\n  printf(\"%d\\n\", 4);\n\nDefer to gcc\u0027s builtin functions instead of pointing our code\nto the libc implementation.\n\nChange-Id: I5e1dcb61946461c4afaaaa983e39f07c7a0df0ae\n"
    },
    {
      "commit": "606058933c5129cb1026960ea67624b9426c610f",
      "tree": "b041941841289aff7b9fd12217a97ab1bbd22054",
      "parents": [
        "b09d7d86004ab75b774358454d8ee261987af96b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 15 10:35:09 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 15 10:35:09 2013 -0800"
      },
      "message": "fix strerror_r test\n\ne6e60065ff093ff8c859ab146cf543531cb1967c modified strerror_r to\ntreat errno as signed. However, the change to the test code\nmodified the \"strerror\" test, not the \"strerror_r\" test.\n\nMake the same change for the strerror_r code.\n\nChange-Id: Ia236a53df5745935e229a4446a74da8bed0cfd7b\n"
    },
    {
      "commit": "dcab1b2c76a498c56bc00024613386de8b4b2aae",
      "tree": "6d7eb1ea166186df3092552b190b4485658b3e68",
      "parents": [
        "bfde0b6fd9e5de545746ab963d3a05ed2a8014f6"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jan 10 17:12:29 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 11 10:52:36 2013 -0800"
      },
      "message": "Add stack canaries / strcpy tests.\n\nAdd a test to ensure that stack canaries are working\ncorrectly. Since stack canaries aren\u0027t normally generated\non non-string functions, we have to enable stack-protector-all.\n\nAdd a test to ensure that an out of bounds strcpy generates\na runtime failure.\n\nChange-Id: Id0d3e59fc4b9602da019e4d35c5c653e1a57fae4\n"
    },
    {
      "commit": "e6e60065ff093ff8c859ab146cf543531cb1967c",
      "tree": "41de4f1d0cf5cec9fa72c4ad6d0fed5bf1b00329",
      "parents": [
        "0d3700d957debe841c385f66a8026ca8b3755815"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 16:01:59 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 16:01:59 2013 -0800"
      },
      "message": "glibc 2.15 treats errno as signed in strerror(3).\n\nAnd the only reason I hadn\u0027t done that in bionic is because I wanted to behave\nthe same as glibc.\n\nChange-Id: I2cf1bf0aac82a748cd6305a2cabbac0790058570\n"
    },
    {
      "commit": "036154b0c2d64d618aded8674f2e13cbbb2867e2",
      "tree": "762ecdcbac0adba6fa068d5704eae2af1688c69d",
      "parents": [
        "604a163e4c7724f881605fdbda94db4f7c8f0e7a"
      ],
      "author": {
        "name": "Anna Tikhonova",
        "email": "anna.tikhonova@intel.com",
        "time": "Fri Oct 05 15:21:11 2012 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 07 18:14:29 2012 -0800"
      },
      "message": "Tests for string routines.\n\nChange-Id: I24068a228f59df1c3b758c5b2026a09720490616\nSigned-off-by: Anna Tikhonova \u003canna.tikhonova@intel.com\u003e\n"
    },
    {
      "commit": "ad88a0863110798cef5169dcf917e18b967a7cf6",
      "tree": "9b5fcbe6ebc81b4fb781dd788b8795a334def653",
      "parents": [
        "d0f2b7e7e65f19f978c59abcbb522c08e76b1508"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 24 18:37:21 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 12:04:03 2012 -0700"
      },
      "message": "Per-thread -fstack-protector guards for x86.\n\nBased on a pair of patches from Intel:\n\n  https://android-review.googlesource.com/#/c/43909/\n  https://android-review.googlesource.com/#/c/44903/\n\nFor x86, this patch supports _both_ the global that ARM/MIPS use\nand the per-thread TLS entry (%gs:20) that GCC uses by default. This\nlets us support binaries built with any x86 toolchain (right now,\nthe NDK is emitting x86 code that uses the global).\n\nI\u0027ve also extended the original tests to cover ARM/MIPS too, and\nbe a little more thorough for x86.\n\nChange-Id: I02f279a80c6b626aecad449771dec91df235ad01\n"
    },
    {
      "commit": "5419b9474753d25dff947c7740532f86d130c0be",
      "tree": "4d746cfc20a1d3b5886f691ed1a49ddf34e2df78",
      "parents": [
        "a9944cfe9e152ca46afb0a77300ec5a2a1a24e64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 16 15:54:46 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 16 17:58:17 2012 -0700"
      },
      "message": "Make dlerror(3) thread-safe.\n\nI gave up trying to use the usual thread-local buffer idiom; calls to\ncalloc(3) and free(3) from any of the \"dl\" functions -- which live in\nthe dynamic linker -- end up resolving to the dynamic linker\u0027s stubs.\nI tried to work around that, but was just making things more complicated.\nThis alternative costs us a well-known TLS slot (instead of the\ndynamically-allocated TLS slot we\u0027d have used otherwise, so no difference\nthere), plus an extra buffer inside every pthread_internal_t.\n\nBug: 5404023\nChange-Id: Ie9614edd05b6d1eeaf7bf9172792d616c6361767\n"
    },
    {
      "commit": "b5f053b5a7deb084e7a052d527e0aa41339ae05c",
      "tree": "a75d6715f7c7c954d22440b8c21c59b01d87e83d",
      "parents": [
        "4a9b7c694a8312160d3cd953a8227c23a1624868"
      ],
      "author": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Sat Sep 08 09:17:54 2012 +0300"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 13 15:18:21 2012 -0700"
      },
      "message": "Make strerror(3) and strsignal(3) thread-safe, and add psignal(3) and psiginfo(3).\n\nChange-Id: I426109db25e907980d6cb3a7a695796e45783b78\n"
    }
  ]
}
