)]}'
{
  "log": [
    {
      "commit": "6fc9aa7bcbef2c41bd8451aac298f3a71d5252ad",
      "tree": "88f363b7159bfd531f44c7502d882fb2dabb8e82",
      "parents": [
        "b3be51399efc35c8cf1d131599e7a83b7e5f0e11"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 14 12:40:40 2025 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 14 12:40:40 2025 -0700"
      },
      "message": "fortify_test.cpp: _FORTIFY_SOURCE\u003d3 should be a superset of 2.\n\nChange-Id: I792d1fef0a58db9738578d58afdea41f5c4a9be6\n"
    },
    {
      "commit": "5866673807823783bdf440ae6227c0eec774004a",
      "tree": "c1c83c1d7687c71fdae167800dbac559f40b99dc",
      "parents": [
        "da8ee2189fb9e105ee4abf1736f1c52e93ac579a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 13:15:01 2025 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 13:15:01 2025 -0800"
      },
      "message": "fortify test cleanup.\n\nSwitch to consistently using volatile rather than the atoi() trick.\n\nAlso move one inexplicable ASSERT_EXIT() over to ASSERT_FORTIFY() like the others.\n\nChange-Id: I2bfc02e8aa8f4d2a9638ad3d6860aea54160050e\n"
    },
    {
      "commit": "df4e06c6d1eb17d885cc6afcd56ec35e55d29ce5",
      "tree": "67772056274421a1c4eafff670cf019ffab363f1",
      "parents": [
        "4f7d3d620e19de2895d077fc9569de01c45221bc"
      ],
      "author": {
        "name": "Daniel Verkamp",
        "email": "dverkamp@google.com",
        "time": "Fri Jan 24 14:08:16 2025 -0800"
      },
      "committer": {
        "name": "Daniel Verkamp",
        "email": "dverkamp@google.com",
        "time": "Mon Jan 27 10:29:04 2025 -0800"
      },
      "message": "Add fortify memcpy_chk happy path tests.\n\nThis catches subtly-broken __memcpy_chk() implementations that fail on\nthe boundary condition where the requested size is exactly the size of\nthe destination buffer; this can be validated by changing the x86\n__memcpy_chk comparison opcode from `ja` to `jae` and ensuring the test\nfails.\n\nAdditionally, a test that exercises the non-failure path where the\nrequested size is less than the buffer size is added, since this wasn\u0027t\nexplicitly tested previously.\n\nBug: 389669171\nTest: ./tests/run-on-host.sh 32 --gtest_filter\u003d\u0027*memcpy*\u0027\nTest: ./tests/run-on-host.sh 64 --gtest_filter\u003d\u0027*memcpy*\u0027\nChange-Id: Icd47731f237574b4f8275616137fca8a2d8bb94c\n"
    },
    {
      "commit": "4f7d3d620e19de2895d077fc9569de01c45221bc",
      "tree": "2eafcc28b38dd3a2ed1322fcd3d3eca57fa914cb",
      "parents": [
        "901e9a8d27b88bde49a5f651c8a4c1ab7072cc74"
      ],
      "author": {
        "name": "Daniel Verkamp",
        "email": "dverkamp@google.com",
        "time": "Fri Jan 24 14:04:55 2025 -0800"
      },
      "committer": {
        "name": "Daniel Verkamp",
        "email": "dverkamp@google.com",
        "time": "Fri Jan 24 14:27:45 2025 -0800"
      },
      "message": "Use atoi() in memcpy_chk fortify test.\n\nWhen calling __memcpy_chk() with a literal -1 argument, the compiler may\n(and does, in practice) optimize away the check and can call memcpy()\ndirectly instead. This defeats the purpose of the test, and a defective\n__memcpy_chk() implementation (e.g. in assembly) can pass the test.\n\nThis can be validated by changing the x86 __memcpy_chk comparison\nopcode from `ja` (unsigned compare) to `jg` (signed compare). Without\nthe atoi(), the test still passes even with the wrong implementation.\n\nTo fix this, use atoi() to parse the size from a string, similar to\nother tests in this file. This ensures the actual __memcpy_chk()\nimplementation gets executed.\n\nBug: 389669171\nTest: ./tests/run-on-host.sh 32 --gtest_filter\u003d\u0027*memcpy*\u0027\nTest: ./tests/run-on-host.sh 64 --gtest_filter\u003d\u0027*memcpy*\u0027\nChange-Id: I69e9df72d5071925cc3dee44863dc0ca66e243d4\n"
    },
    {
      "commit": "2a3918828b1217ae04d3e3b43f8a56707c9bea14",
      "tree": "aab81800dd3cd947ffc41f39ce84ba5e3a4c5239",
      "parents": [
        "f8f4e9f84d836a8eaa63b097bd4215c4707463e1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 19 13:44:35 2024 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 19 16:38:29 2024 -0800"
      },
      "message": "Replace memset 0 with initializers.\n\nTest: Compiles and bionic unit tests pass.\nChange-Id: I94e178c56d958beeb1c484e4d52d61df022189e8\n"
    },
    {
      "commit": "2ddb20d29d0271b48f10d3ce69030be124d8b639",
      "tree": "4be7e7f698b313676bb4905d5594eb3cff40ee11",
      "parents": [
        "343381d59388ca74003a6968f6a8c7447d051c6b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 04 16:44:57 2024 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 04 16:44:57 2024 -0800"
      },
      "message": "Remove a few glibc #if hacks.\n\nWe\u0027ve updated the corresponding glibc headers so we don\u0027t need these\nhacks any more.\n\nBug: http://b/318541070\nTest: treehugger\nChange-Id: Ic1974f30f9edb2589cc93041822706bc89909882\n"
    },
    {
      "commit": "51be22c28d32983a8b43725c90208a7e686a8dee",
      "tree": "3ada736fdf90cad723719663b398dc4441cf0e29",
      "parents": [
        "fc1b3b8b7e1528d88efe2d6c50a7ab8946e1163e",
        "e7943f8b953a003a601477a3aa87ec303994c25e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 28 20:17:02 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 28 20:17:02 2023 +0000"
      },
      "message": "Merge \"Consistently use `#if defined(__BIONIC__)`.\" into main"
    },
    {
      "commit": "e7943f8b953a003a601477a3aa87ec303994c25e",
      "tree": "4f518ab6b545c410998ea311376450ccb7e212e7",
      "parents": [
        "a67fe1b171ef3dfaddf85069cd2279ea6ad3d6a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 28 08:20:20 2023 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 28 10:47:51 2023 -0700"
      },
      "message": "Consistently use `#if defined(__BIONIC__)`.\n\nTest: treehugger\nChange-Id: I844b909404532eb9165cba1ed6f237bdd4a46990\n"
    },
    {
      "commit": "11069030d69e2c593e2c16ebf0224a9ba955f107",
      "tree": "ae767d8954dda4bc819c5be73014f790aea6d08c",
      "parents": [
        "a67fe1b171ef3dfaddf85069cd2279ea6ad3d6a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 28 08:22:26 2023 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 28 08:22:26 2023 -0700"
      },
      "message": "Remove an obsolete TODO now we have a new clang.\n\nTest: treehugger\nChange-Id: I19751fe73f4cd3400005d0ccad0bccb0a74f6fc8\n"
    },
    {
      "commit": "e1833e54a76a6fdfda845c22412e68bcdf3e264a",
      "tree": "623a0dea1b880a5a00184cad943430e7bea9e544",
      "parents": [
        "a89765bcaa7f7b20804ac761b1ac5cb8441529f9"
      ],
      "author": {
        "name": "zijunzhao",
        "email": "zijunzhao@google.com",
        "time": "Wed Apr 26 21:43:30 2023 +0000"
      },
      "committer": {
        "name": "zijunzhao",
        "email": "zijunzhao@google.com",
        "time": "Wed Apr 26 23:14:36 2023 +0000"
      },
      "message": "Set __BIONIC_COMPLICATED_NULLNESS for the vsnprintf family\n\nWhen annotating the netinet directory aosp/2552567, we realize the\nargment s for vsnprintf family can be null only if the buffer size is 0.\nSo we correct them and add some tests to verify our assumption.\n\nBugs: b/245972273\nTest: adb shell\nChange-Id: I51063286272be0daee0d7c1453a374b1f5674481\n"
    },
    {
      "commit": "141b917018048c5fda567785740dfaaf38e66f1e",
      "tree": "144416c96d8e3d1406ed78d8221a72a174317d80",
      "parents": [
        "999d82e51d8b96c622ecb63c69b56e7e7753e47d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 09 17:13:09 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 12 10:01:20 2021 -0700"
      },
      "message": "Switch to libbase SilentDeathTest.\n\nBug: http://b/184955378\nTest: treehugger\nChange-Id: Ie0849224074da92203340a741a86a24a4a3702c2\n"
    },
    {
      "commit": "62165a180883889c3bdd5c99fc3bdd91778b0c25",
      "tree": "a771f5fe05336a026519bc8e61bf3f1b3b814f72",
      "parents": [
        "3936985e75eace1adeeb8d64d4c98e737318d284"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Aug 18 01:38:14 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Aug 18 01:40:41 2020 -0700"
      },
      "message": "Cast from const void * -\u003e const char * when using memchr().\n\nbionic/tests/fortify_test.cpp:207:31: error: format specifies type \u0027char *\u0027 but the argument has type \u0027void *\u0027 [-Werror,-Wformat]\n  ASSERT_FORTIFY(printf(\"%s\", memchr(myfoo.a, \u0027a\u0027, asize)));\n                         ~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBug: http://b/155835175\nTest: atest for bionic\nChange-Id: I0fa4e63deadffb7391e66ab834ff11e4f1d6dba6\n"
    },
    {
      "commit": "cfd8f581fabdc88ec836c3b0804b0493a8b20ab8",
      "tree": "b27292e87a89d9f2f2fa73d1a78e8ae6caa96970",
      "parents": [
        "c79ea239415963d4a38752d0f3efe50531c8e04f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 23 13:40:39 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 23 13:41:53 2020 -0700"
      },
      "message": "Cleanup for #inclusivefixit.\n\nThe comment and pragma for GCC genuinely don\u0027t seem to be needed for\nClang.\n\nClarify the comment about the two ways in which clang_fortify_tests.cpp\nis used.\n\nTest: treehugger\nChange-Id: Icb48a5848c005104ab2d2456da3978bbaf7e158c\n"
    },
    {
      "commit": "849c0b9f51b65da9f3ac7a3222da9ae00893acfd",
      "tree": "1b118a1406ebeddc7786d35a4f06ebfa5b38b42e",
      "parents": [
        "74519e7aa58a19c0ed352b660f2e732148ae2f8a"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 10 16:22:09 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:29:37 2019 -0700"
      },
      "message": "fortify: add __mempcpy_chk\n\nBug: 131861088\nTest: mma + bionic-unit-tests on blueline\nChange-Id: I02f8f87d5db0ba5fecec410da32f6ffa2c98ef57\n"
    },
    {
      "commit": "bcaa454d32e1b4ccf92467bb263d627695ac9a5b",
      "tree": "65d7d4c493242ecb51bfe1796f133b32538de514",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:20:23 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:26:39 2019 -0700"
      },
      "message": "bionic tests: use GTEST_SKIP.\n\nAlso be a bit more to the point in our messages, focusing on \"why\" not\n\"what\".\n\nTest: ran tests\nChange-Id: I297806c7a102bd52602dcd2fcf7a2cd34aba3a11\n"
    },
    {
      "commit": "e9c0e828dede1a0284741ce90c74b1c66f4d70fc",
      "tree": "f154aad555003c0e6353d224dccc6ab8b7443f36",
      "parents": [
        "4d339287080022ed67bb98949d7eb6737f8c917b"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Mar 22 11:22:59 2018 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Mar 26 18:03:16 2018 -0700"
      },
      "message": "Fix an ifdef in a test\n\nWe don\u0027t support GCC here anymore. More importantly: `#ifdef foo \u0026\u0026\nbar` is apparently parsed as `#ifdef foo` with extra tokens at the end.\nOops.\n\nBug: None\nTest: Treehugger\nChange-Id: I63d09b0fbad688d3b68a3327a52b3bb55627272f\n"
    },
    {
      "commit": "b83bf14a352269135d3e2fe783414c3b6e1d0ac5",
      "tree": "3e3b5604f28445915e5011af96bacf8e6021f1aa",
      "parents": [
        "1423bb849879f3f126cb1e6dcb279da5360ef5fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 11:01:25 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 13:59:02 2018 -0700"
      },
      "message": "Fortify ppoll64.\n\nI\u0027ve deliberately not bothered with the GCC implementation because we\u0027ll\nhave removed GCC from the NDK before anyone gets to use this.\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: Icfc2a3b214739ab53aa41bacacc11b5c67498fb4\n"
    },
    {
      "commit": "55a8cc2a0da3d708bbf841110fca16411b1fd2fb",
      "tree": "ea3092315151260146cef5d05a18ba2548abb363",
      "parents": [
        "265b1ab966cd8ffba430c0ab65f35752757b78ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 08 21:22:44 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 09 15:46:51 2017 -0800"
      },
      "message": "Add trivial test for __memrchr_chk.\n\nBug: N/A\nTest: ran tests\nChange-Id: I42aefcbf1fac6b96e56a0e21f94586a3caa524dc\n"
    },
    {
      "commit": "b115aefbb3a472c605e167e09d14b1a797337e77",
      "tree": "4167aea0a211331deb64f66e3dfd6d931d20f246",
      "parents": [
        "cc3639b3eeb30cc4e994714254e8f995e77b30bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 09:34:19 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 10:20:18 2017 -0700"
      },
      "message": "With O_TMPFILE, open(2) takes a mode argument.\n\nStrictly, the mode isn\u0027t really meaningful unless you supply O_EXCL,\nbut the kernel will take it and fstat will return it even if you\nnever give the file a name.\n\nAlso warn for O_TMPFILE without a mode at compile time where possible.\n\nBug: N/A\nTest: ran tests\nChange-Id: I729b6d6e6190676fd017a1190b6200bf9abdbfd8\n"
    },
    {
      "commit": "85408ef2daaf6149baf0f03d69d9376dbc8d8c54",
      "tree": "18864ecc3d51137549bedfb7c7090a8b2addf8ca",
      "parents": [
        "5c7107434bfd3f937c626e506ed00238fe27ee18",
        "2d3122c90b58655cc44c9e7b9461b9de3daccb2e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 02 22:25:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 02 22:25:59 2017 +0000"
      },
      "message": "Merge \"Fix test compile errors after LLVM rebase\""
    },
    {
      "commit": "2d3122c90b58655cc44c9e7b9461b9de3daccb2e",
      "tree": "2ec2c29d0fff6cb4cb54da35ff4f1abe92b67292",
      "parents": [
        "dfe0fa4151eeae806e9eb52c337c449cd028c160"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sun Apr 30 15:08:05 2017 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue May 02 21:14:42 2017 +0000"
      },
      "message": "Fix test compile errors after LLVM rebase\n\nAfter the new rebase of Clang, we now support the alloc_size attribute,\nso we can remove the warning about switching to alloc_size once Clang\nhas support.\n\nAlso fix an issue where \u0027false\u0027 is returned in a main method.\n\nTest: make cts\nBug: 37752547\nChange-Id: I32ee814aaa0338567cb8174a68d7ee1bfece2f75\n"
    },
    {
      "commit": "cf44343c1a0d22795aa9b994f9c0c6576fa536b8",
      "tree": "a4e0094ee8861a5c9b7f45dd83bcc315b8b2de7b",
      "parents": [
        "5deddda68e780aaa26e4777378fee10d543eb719"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon May 01 11:15:30 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon May 01 11:20:31 2017 -0700"
      },
      "message": "fix half-deleted comments in tests\n\nthey were half-deleted in If341a27756d608a0fa77ba6518e9bcc725f7632c.\n\nBug: None\nTest: mma\nChange-Id: I4e0c8208a7f2a55d273f4c87adca1d755dc98b77\n"
    },
    {
      "commit": "5f8a673a7f6afc019fefdf3f01ef5889f2f01213",
      "tree": "0bb4dc991327fce0fe78005843d6d5c2c8e7df77",
      "parents": [
        "e06c69d07324f3da67aa063202e698dedd831365"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Apr 06 11:26:11 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Apr 06 11:27:41 2017 -0700"
      },
      "message": "Enable FORTIFY unit tests for clang\n\nAnd add a thing to remind us to enable the malloc FORTIFY test when we\npull a new clang in.\n\nBug: 34747525\nTest: vts -m BionicUnitTests on bullhead\nChange-Id: If341a27756d608a0fa77ba6518e9bcc725f7632c\n"
    },
    {
      "commit": "bd3d2088d99f45babb8a73192b53b6fd91930af3",
      "tree": "0533adb1ea5e0af98272e39ff9dc8e7fd3bdbf83",
      "parents": [
        "07807a10a2dfa85a952ee8c06188d0bc9597c184"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Apr 04 17:34:02 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Apr 05 13:17:07 2017 -0700"
      },
      "message": "libc: add const-correct string.h overloads\n\nlibcxx provides const-correct overloads for a few string.h functions.\nThese overloads use clang\u0027s enable_if attribute, so they\u0027re preferred\nover our FORTIFY\u0027ed equivalents.\n\nThis weakens _FORTIFY_SOURCE\u003d2 when used with some of these functions,\nsince clang needs to see __pass_object_size in order to pass an accurate\nresult for __builtin_object_size(s, 1) at a callsite. Since those\nfunctions don\u0027t have __pass_object_size on their params, clang can\u0027t do\nthat. This makes LLVM lower the __builtin_object_size calls, which means\nwe get the same result as __builtin_object_size(s, 0).\n\nWe have to provide all of the overloads in Bionic, since enable_if is\nonly used to disambiguate overloads with (otherwise) the same type. In\nother words:\n\n// overload 1\nchar *strchr(const char *, int s) __attribute__((enable_if(1, \"\")));\n// overload 2\nchar *strchr(char *, int s);\n\nvoid foo() {\n  char cs[1] \u003d {};\n  strchr(static_cast\u003cconst char *\u003e(cs), \u0027\\0\u0027); // calls overload #1.\n  strchr(cs, \u0027\\0\u0027); // calls overload #2.\n}\n\nBug: 34747525\nTest: m checkbuild on bullhead internal master + AOSP. vts -m\nBionicUnitTests passes on both. Surprisingly, the only code that this\nseems to break is contained in Bionic.\n\nChange-Id: Ie406f42fb3d1c5bf940dc857889876fc39b57c90\n"
    },
    {
      "commit": "95b59c520b24aabcdc63b93a3f1eaf73e57a3afe",
      "tree": "76e43d9ec4f387c5774508c9e6c9d728a21c8052",
      "parents": [
        "9fc52deab1c6bec6a37860242eafe1ae4c205e44"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Feb 13 17:27:59 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 14 15:50:28 2017 -0800"
      },
      "message": "add fortified implementations of send/sendto\n\nBug: None\nTest: Bullhead builds+boots; CtsBionicTestCases passes.\nChange-Id: I2f137a100f679f7f2145d84b2f29ddd3e96a36ae\n"
    },
    {
      "commit": "62e59646f8795afac2eb4189a153e7decde370e7",
      "tree": "263b028a69cf045c2a3938a737d38399ff4e1a7a",
      "parents": [
        "2de7983470a04e3037a8993553c3b9533b985952"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 11:22:42 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 12:46:47 2016 -0800"
      },
      "message": "Improve diagnostics from the assembler __memset_chk routines.\n\nChange-Id: Ic165043ab8cd5e16866b3e11cfba960514cbdc57\n"
    },
    {
      "commit": "f68dcbe0930b38db2a0909934f64175b1c51745a",
      "tree": "630abb9be054f216e2cce64dafe656ce209659c7",
      "parents": [
        "4821db1b3ecc14828d4acf4abed26bb7d8b8cf6a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 02 17:13:03 2016 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 02 17:13:03 2016 -0800"
      },
      "message": "Fix our fortify tests for global -Werror.\n\nIf anyone has a better way of doing this it would be welcome...\n\nBug: http://b/26936282\nChange-Id: I796896866327b4b5b5ee4ec36994fb320993f85d\n"
    },
    {
      "commit": "afdd15456ad0c7223c690731f5eb0af54cdb0024",
      "tree": "96d486d0485a4d63d7090f72192685c3cbdd0f82",
      "parents": [
        "7e919daeaad62515ebbbf7b06badc77625a14d90"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Jul 20 21:37:29 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Aug 20 13:46:51 2015 -0400"
      },
      "message": "add fortified implementations of write/pwrite{,64}\n\nThese are just based on the read/pread{,64} implementations with the\nfunction calls and error messages adjusted as appropriate. The only\ndifference is that the buffer parameters are const.\n\nChange-Id: Ida1597a903807f583f230d74bcedffdb7b24fcf6\n"
    },
    {
      "commit": "9101b00400cfb20b96112682169c5da67e065ff2",
      "tree": "de51712678e0abbab722c1c0601c2f1508b387bf",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Wed May 20 15:31:26 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Aug 01 00:42:30 2015 -0400"
      },
      "message": "add a fortified implementation of getcwd\n\nChange-Id: Ice3e6d3e1ff07788305dc85f8ee4059baad5fac4\n"
    },
    {
      "commit": "fed2659869ec41a93f655be8058568ddab419e01",
      "tree": "5dca1c6f1f120a561d5279eb76816e94e210cb94",
      "parents": [
        "2565492db0d67b95348cd1c3026ed338ca59aa37"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Jul 18 13:55:51 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Jul 23 18:55:46 2015 -0400"
      },
      "message": "add fortified implementations of fread/fwrite\n\nA __size_mul_overflow utility is used to take advantage of the checked\noverflow intrinsics in Clang and GCC (\u003e\u003d 5). The fallback for older\ncompilers is the optimized but less than ideal overflow checking pattern\nused in OpenBSD.\n\nChange-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69\n"
    },
    {
      "commit": "42281880a8ac8614832ff918a14e4b950f35d05d",
      "tree": "0823c1e87386aea7417635e176494ab2b9fb89ab",
      "parents": [
        "3875744f89600027c69ea68650fff1eeb4b29723"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 11:26:36 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 18:49:12 2015 -0400"
      },
      "message": "add fortified readlink/readlinkat implementations\n\nChange-Id: Ia4b1824d20cad3a072b9162047492dade8576779\n"
    },
    {
      "commit": "e7e1c875b0f8eefb1d771f200a58f54e64c39d55",
      "tree": "f6f7d5465c32d2dc7144c9e46b8b57da480f8528",
      "parents": [
        "a40cb0ca7fe8ddc146831e92ec543be9feb26a65"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 09:07:45 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 10:33:35 2015 -0400"
      },
      "message": "add fortified implementations of pread/pread64\n\nChange-Id: Iec39c3917e0bc94371bd81541619392f5abe29b9\n"
    },
    {
      "commit": "f4fe6937aa5ac5a424b63bc68c5a953aaf46e1c6",
      "tree": "cb4065d1b47a960be80b5ecd6c8a62a7e6634d97",
      "parents": [
        "d80ec66121b5af96c6b3d07ba34353b3d517f5b3"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 03 17:52:32 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 04 12:27:06 2015 -0800"
      },
      "message": "Fix poll/ppoll fortify test to avoid hanging in failed fortify clang test.\n\nBug: 19220800\nChange-Id: Ie75c640183c4a41a499556fefb4f824a134a5fb1\n"
    },
    {
      "commit": "d036e94bb39a551768dc756a79366e6378fe95e3",
      "tree": "347d607af94281c14bf9215fb9d9a9cfcbd24d2e",
      "parents": [
        "7f0f30c6e20c1bf04bec05077eef2d779e7a32df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 11:18:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 11:18:58 2015 -0800"
      },
      "message": "Explicitly check that the reason fortify tests abort is fortify.\n\nChange-Id: I95291e2febf7b497c1d9f37fd7fa9acdd21e86a4\n"
    },
    {
      "commit": "4674e3899afcc6b3ac8a48cdb716695d5489d26b",
      "tree": "b4dadb078646cbb46dd62a14c623b7e0d06619e3",
      "parents": [
        "ffbda83b302e3c3970135013d2bb92402e040fe5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 09:15:19 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 09:15:19 2015 -0800"
      },
      "message": "Fortify poll and ppoll.\n\nAnd remove the test for FD_ZERO fortification, which never made much\nsense anyway.\n\nChange-Id: Id1009c5298d461fa4722189e8ecaf22f0c529536\n"
    },
    {
      "commit": "9df70403d95f5cfe6824e38a9a6c35f9b9bbc76a",
      "tree": "5a2914b5db892fa3d2c17caf9e9a53f7fc0a5d93",
      "parents": [
        "2311383180aee9388d28b03901a1e4ef021bcfa7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 05 18:01:01 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 06 11:09:03 2014 -0800"
      },
      "message": "make all bionic death tests not dumpable\n\nBug: 18067305\n\nChange-Id: Ia1ecacf47eddecc9bc58aaac779e0c218f463179\n"
    },
    {
      "commit": "884a3de60f442748a1d15c6a219f7058e03e38e2",
      "tree": "5c562cf12fcb46b262782fc0893d26c13366dafa",
      "parents": [
        "9b543ffeac216189cc8125f7624da9a8cbcbe2e4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 06 00:39:47 2014 +0000"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 06 00:39:47 2014 +0000"
      },
      "message": "Revert \"cdefs.h: add artificial attribute to FORTIFY_SOURCE functions\"\n\nBroke the build.\n\nIn file included from frameworks/rs/cpu_ref/rsCpuCore.cpp:36:\nsystem/core/include/cutils/properties.h:118:1: error: unknown attribute \u0027__artificial__\u0027 ignored [-Werror,-Wunknown-attributes]\n__BIONIC_FORTIFY_INLINE\n^\nbionic/libc/include/sys/cdefs.h:537:110: note: expanded from macro \u0027__BIONIC_FORTIFY_INLINE\u0027\n#define __BIONIC_FORTIFY_INLINE extern __inline__ __always_inline __attribute__((gnu_inline)) __attribute__((__artificial__))\n                                                                                                             ^\n1 error generated.\nmake: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libRSCpuRef_intermediates/rsCpuCore.o] Error 1\nThis reverts commit 9b543ffeac216189cc8125f7624da9a8cbcbe2e4.\n\nChange-Id: I6a1198747505dcb402b722887c1bfbc3a628a8b8\n"
    },
    {
      "commit": "9b543ffeac216189cc8125f7624da9a8cbcbe2e4",
      "tree": "d25f28e88151d614df5e39e4fc4fa22a280a6479",
      "parents": [
        "ae97a776ea900e5923d6d320d72dcc04b224796e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Oct 04 15:26:29 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Oct 04 22:01:41 2014 -0700"
      },
      "message": "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions\n\nOtherwise the gcc compiler warning doesn\u0027t show up.\n\nDelete some unittests. These unittests no longer compile cleanly\nusing -Wall -Werror, and rewriting them to compile cleanly\nisn\u0027t feasible.\n\nBug: 17784968\nChange-Id: I9bbdc7b6a1c2ac75754f5d0f90782e0dfae66721\n"
    },
    {
      "commit": "be0e43b77676338fd5e6a82c9cc2b6302d579de2",
      "tree": "4d6418a29796bb609f25cadfd313af9bd94bde0f",
      "parents": [
        "f9bfc2ff8eb5db99a106a8a384498165361291ce"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jul 23 13:56:23 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jul 23 15:48:49 2014 -0700"
      },
      "message": "debuggerd: if PR_GET_DUMPABLE\u003d0, don\u0027t ask for dumping\n\nPR_GET_DUMPABLE is used by an application to indicate whether or\nnot core dumps / PTRACE_ATTACH should work.\n\nSecurity sensitive applications often set PR_SET_DUMPABLE to 0 to\ndisable core dumps, to avoid leaking sensitive memory to persistent\nstorage. Similarly, they also set PR_SET_DUMPABLE to zero to prevent\nPTRACE_ATTACH from working, again to avoid leaking the contents\nof sensitive memory.\n\nHonor PR_GET_DUMPABLE when connecting to debuggerd. If an application\nhas said it doesn\u0027t want its memory dumped, then we shouldn\u0027t\nask debuggerd to dump memory on its behalf.\n\nFORTIFY_SOURCE tests: Modify the fortify_source tests to set\nPR_SET_DUMPABLE\u003d0. This reduces the total runtime of\n/data/nativetest/bionic-unit-tests/bionic-unit-tests32 from approx\n53 seconds to 25 seconds. There\u0027s no need to connect to debuggerd\nwhen running these tests.\n\nBug: 16513137\nChange-Id: Idc7857b089f3545758f4d9b436b783d580fb653f\n"
    },
    {
      "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"
    }
  ]
}
