)]}'
{
  "log": [
    {
      "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": "14ab353e199909e4993c40e8228de9b2eb803cb2",
      "tree": "c9763cf98c142cfa18351dd7dfe9c72ad4e97acc",
      "parents": [
        "7d06b37270124ef734fa918cd5141827dd9f87a6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 08 20:59:50 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 08 20:59:50 2021 -0700"
      },
      "message": "Use GTEST_SKIP() rather than GTEST_LOG_() when skipping.\n\nTest: treehugger\nChange-Id: I74dca1882c002a51c9758fe7282b10c4413ecb03\n"
    },
    {
      "commit": "c0d41db92e6bffdb0e0ab1ec2cde573f522b196b",
      "tree": "327e1c3316a20d11a55007f4a112d75104cf7a71",
      "parents": [
        "87a205eefa2e12597f6d7a05db05fefbe498a292"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 02 18:02:38 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 05 17:43:36 2021 -0700"
      },
      "message": "setjmp/longjmp: avoid invalid values in the stack pointer.\n\narm64 was already being careful, but x86/x86-64 and 32-bit ARM could be\ncaught by a signal in a state where the stack pointer was mangled.\n\nFor 32-bit ARM I\u0027ve taken care with the link register too, to avoid\npotential issues with unwinding.\n\nBug: http://b/152210274\nTest: treehugger\nChange-Id: I1ce285b017a633c732dbe04743368f4cae27af85\n"
    },
    {
      "commit": "e657eb4f8abc2bb21571df1c0d0e0cbfaadce1c1",
      "tree": "ece8247ab16072e2fd1fca786be9050562bb3f60",
      "parents": [
        "332065d57e734b65f56474d136d22d767e36cbcd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 18 17:11:56 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 18 17:23:04 2021 -0800"
      },
      "message": "Fix some bionic death tests.\n\nThese were creating tombstones and spewing to the log.\n\nYou need TEST_F() rather than TEST(), and the modern style is apparently\nto use `using` rather than an empty subclass.\n\nBug: http://b/180605583\nTest: run tests, check logcat\nChange-Id: I1e639d34854aeff6f042c24643b769a6bcfab877\n"
    },
    {
      "commit": "6a65ccdf5213cf3b9e80eba11ef8a0f40240272b",
      "tree": "1f667a8bdfb7d35fc014517e2724cb16486423d4",
      "parents": [
        "97d053283f4c100baed8677f7a7af98a976a2e2f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 13 09:48:14 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 13 09:48:14 2020 -0800"
      },
      "message": "Remove mips test workarounds.\n\nThe mips/mips64 targets were never able to pass these tests, and the\nsupported architectures don\u0027t need any of these workarounds.\n\nTest: treehugger\nChange-Id: I640a8b7a98ae13d9d9cdb09b0fbef61d31d4c79a\n"
    },
    {
      "commit": "734beec3d48a7ea5cfe3bd0815676181ea698cc7",
      "tree": "4a288b288b56d549c23e25166de6be1b86729c79",
      "parents": [
        "83590680649dc04ce8a98cd85b6356e1d6066564"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Nov 14 12:41:41 2018 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Nov 16 14:37:08 2018 -0800"
      },
      "message": "Allocate a small guard region around the shadow call stack.\n\nThis lets us do two things:\n\n1) Make setjmp and longjmp compatible with shadow call stack.\n   To avoid leaking the shadow call stack address into memory, only the\n   lower log2(SCS_SIZE) bits of x18 are stored to jmp_buf. This requires\n   allocating an additional guard page so that we\u0027re guaranteed to be\n   able to allocate a sufficiently aligned SCS.\n\n2) SCS overflow detection. Overflows now result in a SIGSEGV instead\n   of corrupting the allocation that comes after it.\n\nChange-Id: I04d6634f96162bf625684672a87fba8b402b7fd1\nTest: bionic-unit-tests\n"
    },
    {
      "commit": "baf20fc9122740ff2baa34d28001e8bdfac9568c",
      "tree": "8e6f717de9cef90828010497ef80ab454c0eb4c6",
      "parents": [
        "773c697f815d43182adf1eb430f4899255088d6b"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 08 17:28:07 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 09 16:27:22 2018 -0700"
      },
      "message": "Block TIMER_SIGNAL in sigprocmask(SIG_SETMASK, ...).\n\nPreviously, we were zeroing out the reserved signals, when we actually\nwanted to have TIMER_SIGNAL always be blocked, and the other signals\nalways be unblocked. This resulted in process termination when a\nSIGEV_THREAD timer callback calls sigprocmask(SIG_SETMASK, ...) with\nany signal mask value, and then subsequently fails to complete its\ncallback and reach the sigtimedwait in bionic before the next timer\niteration triggers.\n\nAdd a how argument to filter_reserved_signals to appropriately\nblock/unblock our reserved signals.\n\nBug: http://b/116783733\nTest: bionic-unit-tests32/64\nChange-Id: Ie5339682cdeb914711cd4089cd26ee395704d0df\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "71ba5899ae5857a6510f0fa05039dccee73bcc6a",
      "tree": "9d34769766ce10c95ecb32bc5ec25949007a0048",
      "parents": [
        "0a8d5f3eb8f4087b307f237943a19ae36b094ced"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 07 12:44:45 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 05 17:20:12 2018 -0800"
      },
      "message": "Rewrite system(3) to use posix_spawn(3).\n\nWe saw crashes from pthread_exit+debuggerd on LP32\n(https://issuetracker.google.com/72291624), and it seems like the\nequivalent problem should exist with system(3). I fixed posix_spawn(3)\nas part of that bug, so the easiest fix is probably to reuse that.\n\nBug: http://b/72470344\nTest: ran tests\nChange-Id: I05f838706f2b4a14ac3ee21292833e6c8579b0d4\n"
    },
    {
      "commit": "460130b7d07f0efba7f4f43f657f0f60daeb71e2",
      "tree": "b74709deb7bd530b7c5621da8f541209bf2cff5e",
      "parents": [
        "d8fde3f8a9210789c97dfcc16f048fd20c1ec0ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 31 09:05:26 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 31 17:47:16 2018 -0800"
      },
      "message": "Fix sigsetjmp/siglongjmp to save/restore RT signals on arm/x86 too.\n\nOur arm and x86 ABIs shipped with a 32-bit `sigset_t`, so we need to\nuse sigprocmask64 to save/restore the RT signals too. (This is important\nbecause several are in use by the system, and the behavior of our 32-bit\n`sigset_t` is to clear the RT signals.)\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: Idff91f8b2849276e5a3073d07eccd84e02a34410\n"
    },
    {
      "commit": "3299590dfe582c212c2928b7b57427db57859d46",
      "tree": "cd9e5167dff64d7b2691891e07259e954c7c0592",
      "parents": [
        "7c59c70200a86387d3c97e9d7f34e2b8dbed88b3"
      ],
      "author": {
        "name": "Predrag Blagojevic",
        "email": "predrag.blagojevic@imgtec.com",
        "time": "Wed Mar 16 15:49:12 2016 +0100"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Mon Mar 28 14:54:49 2016 +0000"
      },
      "message": "Add a checksum to jmp_buf on mips and mips64.\n\nMake it easier to diagnose applications mucking with the contents of\njmp_buf by checksumming its contents.\n\nBug: http://b/27417786\nChange-Id: I473bc2871dece23a9b9d02481945246160d671c6\n"
    },
    {
      "commit": "a4c69137c693c45fce4010ba61d69d7147f5dd9a",
      "tree": "ad08fb5e8878682c4cc959d44c507aa68be8bce9",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 02 19:03:17 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Mar 03 12:45:08 2016 -0800"
      },
      "message": "Add a checksum to jmp_buf on ARM.\n\nMake it easier to diagnose applications mucking with the contents of\njmp_buf by checksumming its contents.\n\nBug: http://b/27417786\nChange-Id: I9989e2ea3979a36ae0bc4c9e1bacafddbacc731b\n"
    },
    {
      "commit": "1b519c0ae436480881ab10d5b66a184afa4d4373",
      "tree": "f3627acb1854d0c46db52bea2fd7f5e4bc0dbbbc",
      "parents": [
        "f96049062f04a922fda937aecc562517101a38cc"
      ],
      "author": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Tue Oct 06 18:39:49 2015 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Fri Oct 09 13:42:58 2015 +0200"
      },
      "message": "Implement setjmp cookies on MIPS and MIPS64\n\nBug: http://b/23942752\nChange-Id: Ie58892a97b5075d30d7607667251007cda99d38c\n"
    },
    {
      "commit": "7fda8d2aa4d24ab400f6f0cb9f792488b634afae",
      "tree": "d81ce371104bff97fa70f76b76eefe05b0c588f5",
      "parents": [
        "90fc8e24876412a816776d44bedc77e1f1888a13"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 10 15:40:24 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 17 14:07:24 2015 -0700"
      },
      "message": "Implement setjmp cookies on ARM.\n\nReuse the top bits of _JB_SIGFLAG field previously used to store a\nboolean to store a cookie that\u0027s validated by [sig]longjmp to make it\nharder to use as a ROP gadget. Additionally, encrypt saved registers\nwith the cookie so that an attacker can\u0027t modify a register\u0027s value to\na specific value without knowing the cookie.\n\nBug: http://b/23942752\nChange-Id: Id0eb8d06916e89d5d776bfcaa9458f8826717ba3\n"
    },
    {
      "commit": "87dd503018c075a7afe5f0c0613262aca3861d21",
      "tree": "d6b062de6e76262be7fc0132aeb8cf1011354d58",
      "parents": [
        "5c7964c5f159bc3e1bbc577c7ace52177f399b21"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 20:52:34 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 20:52:34 2015 -0800"
      },
      "message": "Add a test for float registers across setjmp/logjmp.\n\nChange-Id: I17cc056b185755e0b91de096b5ceefee4f4e0b3a\n"
    },
    {
      "commit": "1510a1c1ae1068ee75a1577ad1052fe5c3169816",
      "tree": "d9c94d9d23347eb7cb87338b508a3db80b3ff9d5",
      "parents": [
        "6a6845244cf9eb8fe21ecc012b7b45990adad7d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 10 09:31:04 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 10 11:48:19 2014 -0800"
      },
      "message": "Fix the setjmp tests for mips.\n\nAlthough the LP32 mips sigset_t is large enough to represent all signals,\ntheir jmp_buf is too small. This test succeeded on arm and x86 because the\nRT signals were never in the \u0027expected\u0027 sigset_t, so the equality comparison\nwith the \u0027actual\u0027 sigset_t worked fine --- everyone was blind to the RT\nsignal. On mips the tests fail because the \u0027expected\u0027 sigset_t does contain\nthe RT signal but the \u0027actual\u0027 doesn\u0027t because the jmp_buf only saves and\nrestores the first 32 signals.\n\nThere are 32 free bits (currently used as padding) in the LP32 mips jmp_buf,\nand they might choose to use those to provide better support than the other\ntwo platforms, but I\u0027ll leave that to them. It will be easy to just remove\nthe #if defined(__LP64__) from this change in that case.\n\nFor mips64 it\u0027s not to late to increase the size of the jmp_buf and fix\nthe setjmp family, but since there are decisions to be made here for LP32,\nI\u0027ll leave it all to Imagination folks...\n\nBug: 16918359\nChange-Id: I6b723712fce0e9210dafa165d8599d950b2d3500\n"
    },
    {
      "commit": "1c0c0ede573e3caf86b6fc395ba933bfb7235afa",
      "tree": "a5c72851a8f4548bc4a18f571c63ca11c4075394",
      "parents": [
        "7d3a99b1bb06c3a261252680b4c3295cbcd77894"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 05 22:24:49 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 08 12:46:15 2014 -0800"
      },
      "message": "Fix signal mask save/restore for x86-64.\n\nBug: 16918359\nChange-Id: I30bf61e7d5f1c21daa3a1a21d361e98d77220bf3\n"
    },
    {
      "commit": "e323e99ffbf9e508e74a261f1075433f5a81677f",
      "tree": "25b285da6eaebd2978c6a5e6627e9cc0f1b54394",
      "parents": [
        "8374a5481394e89c46ecc0b7cf60381637edaaa5"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 02 09:57:45 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 02 10:35:25 2014 -0800"
      },
      "message": "restore sigprocmask in setjmp/longjmp test.\n\nBug: 18571921\nChange-Id: Ib8ca7a36abd3ccc729c20c0e32d45b1b33069f65\n"
    },
    {
      "commit": "9fea4090f1160ad8ca77e7b2a9a1a81dc4376329",
      "tree": "73b7b355e3267461ce6b9142129925cde06e280a",
      "parents": [
        "eb3a5e026e65ea80b17580a71f4451f5cf5d6612"
      ],
      "author": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Fri Oct 31 16:37:09 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 26 17:31:24 2014 -0800"
      },
      "message": "bionic tests: add setjmp/_setjmp/sigsetjmp tests.\n\nBug: 17288973\nChange-Id: I2808eee58cbddae1b16fbe19a715b72d6dbaaec3\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    }
  ]
}
