)]}'
{
  "log": [
    {
      "commit": "063525c61d24776094d76971f33920e2a2079530",
      "tree": "de279e25b05c43dbb06bc3ceb49f23bed3874377",
      "parents": [
        "a26dd781fe675cf94c62183da27622eb83ff6fa7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "message": "Consistently use #if defined(__BIONIC__) in tests.\n\nI\u0027ve also switched some tests to be positive rather than negative,\nbecause !defined is slightly harder to reason about and there are\nonly two cases: bionic and glibc.\n\nChange-Id: I8d3ac40420ca5aead3e88c69cf293f267273c8ef\n"
    },
    {
      "commit": "409588cdae447a0e58bf136a9ea3a9b8d321fbf3",
      "tree": "9c55ff3e47733dcdbeab6a12e561727100c7dcb7",
      "parents": [
        "3b0433f34fed755c28a92d46eab88729694b8055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 23 23:02:43 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 23 23:02:43 2014 -0700"
      },
      "message": "Fix fallout from host GCC upgrade.\n\nI\u0027ll raise a bug for the FD_ISSET fortification; we should do better too.\n\nChange-Id: Id2bf277890ad06b010dc952e270d746714c2bea7\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": "6e38072addd556e3894284b5bd040ac64fffa72e",
      "tree": "e13c1bf92ae30ecd9050b1d519cfd24831442ddf",
      "parents": [
        "eda2679e30b997d036e0ec572cda054adc2ac3a6"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 00:45:24 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 12:14:49 2013 -0700"
      },
      "message": "Wrap sprintf()/snprintf() macros to prevent expansion errors.\n\nPreviously, FORTIFY_SOURCE used single macros to define these standard\nfunctions for use with clang. This can cause conflicts with other macros used\nto call these functions, particularly when those macros expand the number of\narguments to the function. This change wraps our macro definitions, so that\nexpansion properly takes place for programmer arguments first.\n\nChange-Id: I55929b1fd2a643b9d14a17631c4bcab3b0b712cf\n"
    },
    {
      "commit": "b036b5ca36c1e12b075909b3eca6eab73ee611cf",
      "tree": "c3c2056a4e3868618d473047b2519aa91c3233c2",
      "parents": [
        "92f3cc50c8d884d1eb3496ebfba7d3916fc711e8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 20:16:34 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 20:17:03 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: fortify read()\n\nChange-Id: Ic7de163fe121db13e00560adb257331bc709814d\n"
    },
    {
      "commit": "8d2532763981d132b02df157e4cc363c39330090",
      "tree": "371945ae89af3fa167593a3a07f33862c3698ffe",
      "parents": [
        "777ebe86677f6fd88c87995652146b2ead19a95f"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:44:30 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:46:25 2013 -0700"
      },
      "message": "Revert \"FORTIFY_SOURCE: fortify read()\"\n\nThis change reverts\n* fb3f956d075676c0438f2ee2bf3a5be659dfc04b.\n* 65c99de2cb7a569ea17ca35e2f8f1e033421864b\n\nChange-Id: Id5774eeede41130579115cf67a72ee914f2b47d5\n"
    },
    {
      "commit": "65c99de2cb7a569ea17ca35e2f8f1e033421864b",
      "tree": "ed12e2385af1f3a3fc350805f19b7c2948443374",
      "parents": [
        "777a4ee6771e6fe3362ef4f24244a44fcd0aabe4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 13:44:38 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 13:44:38 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: fortify read()\n\nChange-Id: I3d7b4ec86d04efb865117ce7629a2e26917f3331\n"
    },
    {
      "commit": "7943df62f70f686b0c77532f6617b47255d75763",
      "tree": "13dfe2af815383802fe91f3192f4573ac13eb210",
      "parents": [
        "6088047a64abb1e8a27fcb9868b00a630fbdfed4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 14:08:39 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 15:45:10 2013 -0700"
      },
      "message": "Check memory size on FD_* functions\n\nMake sure the buffer we\u0027re dealing with has enough room.\nMight as well check for memory issues while we\u0027re here,\neven though I don\u0027t imagine they\u0027ll happen in practice.\n\nChange-Id: I0ae1f0f06aca9ceb91e58c70183bb14e275b92b5\n"
    },
    {
      "commit": "5b9310e502003e584bcb3a028ca3db7aa4d3f01b",
      "tree": "5747ee180ec0d5c352758125487a2815d4eb3716",
      "parents": [
        "f741e1c2ed27f153e92a2a36c9db3b189f9a6388"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 02 16:59:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 02 16:59:05 2013 -0700"
      },
      "message": "Fix 32-bit issues in tests, and add a trivial test for the FD_* macros.\n\nChange-Id: Ia3f21ce1f0ed9236527fe44d36ccb7de6bf63113\n"
    },
    {
      "commit": "90201d5eca050414d50a433866ccb580415bb0d4",
      "tree": "5d4f66ab3b47c32b1633eeb61d900223f79b0747",
      "parents": [
        "32c0c6e7d56ea2fad0a362f37bb84937b82c3be2"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 16:11:30 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 16:11:30 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: Add __FD_* checks\n\nAdd FORTIFY_SOURCE checks for the following macros:\n\n* FD_CLR\n* FD_ISSET\n* FD_SET\n\nBug: 11047121\nChange-Id: I3c5952136aec9eff3288b91b1318677ff971525c\n"
    },
    {
      "commit": "b91791d71c58d14309cd4d842d222f5d36b3a5a8",
      "tree": "f4ff8e8fbbe7fa01b34f6b2bf82ec0a78146607e",
      "parents": [
        "4bbf3a8b558ea8b5ce62f2d1ee2599a8e95c21c0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 14:14:40 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 14:14:40 2013 -0700"
      },
      "message": "Use alloc_size attribute on *alloc functions\n\nmalloc and family were not declared with __attribute__((alloc_size)).\nThis was (sometimes) preventing FORTIFY_SOURCE related functions\nfrom knowing the size of the buffer it\u0027s dealing with, inhibiting\nFORTIFY_SOURCE protections.\n\nAdd __attribute__((alloc_size))\n\nInformation about the alloc_size attribute can be found\nat http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html\n\nChange-Id: Ia2f0a445f0170a7325f69259b5e7fb35a9f14921\n"
    },
    {
      "commit": "60f4f9a5b99a0a66817f50edfc2194a49f8b5146",
      "tree": "13900546cac13512fd4dfd37d3f9e98606c750d2",
      "parents": [
        "759111cadf84f337f98177259d9e3f9d39c9eea9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 24 16:32:07 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 24 16:45:01 2013 -0700"
      },
      "message": "libc: fortify recvfrom()\n\nFortify calls to recv() and recvfrom().\n\nWe use __bos0 to match glibc\u0027s behavior, and because I haven\u0027t\ntested using __bos.\n\nChange-Id: Iad6ae96551a89af17a9c347b80cdefcf2020c505\n"
    },
    {
      "commit": "16e185c9081530859c17270fbaf5798f0ea871f8",
      "tree": "610f608fea65670da8650a1d93585321972526db",
      "parents": [
        "ad999b6062909d4922fb360a6f3b7f412cc06111"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 10 16:56:34 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 20 20:12:09 2013 -0700"
      },
      "message": "__memcpy_chk: Fix signed cmp of unsigned values.\n\nI accidentally did a signed comparison of the size_t values passed in\nfor three of the _chk functions. Changing them to unsigned compares.\n\nAdd three new tests to verify this failure is fixed.\n\nBug: 10691831\n\nMerge from internal master.\n\n(cherry-picked from 883ef2499c2ff76605f73b1240f719ca6282e554)\n\nChange-Id: Id9a96b549435f5d9b61dc132cf1082e0e30889f5\n"
    },
    {
      "commit": "93501d3ab81156bcef251bb817a49e9ca46a6ec1",
      "tree": "38deed513bd1e1ec2cc316a4bd5de6689ee991da",
      "parents": [
        "2557433d8ea4c489f061170822f34f038b930b96"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 28 10:47:43 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 28 12:39:06 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: introduce __strncpy_chk2\n\nThis change detects programs reading beyond the end of \"src\" when\ncalling strncpy.\n\nChange-Id: Ie1b42de923385d62552b22c27b2d4713ab77ee03\n"
    },
    {
      "commit": "a6cde392765eb955cb4be5faa6ee62dcf77e8aa5",
      "tree": "c1553a2002af8470615afecb1a2fff9c29c2f916",
      "parents": [
        "227b47a461b27d746b373feb66001cdddc9ba1db"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 29 08:15:25 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 29 08:16:22 2013 -0700"
      },
      "message": "More FORTIFY_SOURCE functions under clang\n\n* bzero\n* umask\n* strlcat\n\nChange-Id: I65065208e0b8b37e10f6a266d5305de8fa9e59fc\n"
    },
    {
      "commit": "5bcf39842e8c4b02ae557a2765a84e724f762469",
      "tree": "ed5b7404f85db58dd64433cb033114059705bcfa",
      "parents": [
        "78a7bf998d2d29592504984fcf419cd2701c6c54"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 28 10:34:09 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 28 11:54:29 2013 -0700"
      },
      "message": "Reorganize FORTIFY_SOURCE tests.\n\nGet rid of a lot of the duplication in the various FORTIFY_SOURCE\ntests. Instead, we build 4 separate static libraries, with\n4 different compile time options, and link them into the final test\nbinary.\n\nChange-Id: Idb0b7cccc8dd837adb037bf4ddfe8942ae138230\n"
    }
  ]
}
