)]}'
{
  "log": [
    {
      "commit": "7c0ce86a00433159dfc5dc7164feb752d094dff4",
      "tree": "d597a770e45d269ba3b82aec849922b52a14cdb5",
      "parents": [
        "8ab7ab147c390ee3f46e8d20491c95e4ad4e6e66"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 08 15:33:22 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 08 15:33:22 2021 -0700"
      },
      "message": "Skip the malloc_slack test on native bridge.\n\nThe allocator for the native bridge is not necessarily going to\nallocate the slack data.\n\nBug: 189606147\n\nTest: Ran on non-native bridge and verified test isn\u0027t skipped.\nTest: Ran on native bridge and verified test is skipped.\nChange-Id: Ia1555be0e9f55896af7ca81830605367133c44a1\n"
    },
    {
      "commit": "2659d7b6c221402b9fc58709fdab4d0790c47b4f",
      "tree": "35a268ac00847c20d5f109a10f75a44703dfe695",
      "parents": [
        "15ade069b10f7f5291e48c01db2da4852dae04b7"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 05 13:31:41 2021 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 05 14:29:17 2021 -0800"
      },
      "message": "Add some slack at the end of large allocations when target SDK level \u003c S.\n\nThis works around buggy applications that read a few bytes past the\nend of their allocation, which would otherwise cause a segfault with\nthe concurrent Scudo change that aligns large allocations to the right.\n\nBecause the implementation of\nandroid_set_application_target_sdk_version() lives in the linker,\nwe need to introduce a hook so that libc is notified when the target\nSDK version changes.\n\nBug: 181344545\nChange-Id: Id4be6645b94fad3f64ae48afd16c0154f1de448f\n"
    },
    {
      "commit": "9cad8424ff7b0fa63b53cb9919eae31539b8561a",
      "tree": "f7998255ede5ce02dc6406f7e40f9ac70b4c37ed",
      "parents": [
        "d65b31fad659b806401201adb3cd1dcbf38e61e3"
      ],
      "author": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Wed Jan 20 16:03:27 2021 -0800"
      },
      "committer": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Mon Jan 25 15:19:31 2021 -0800"
      },
      "message": "[MemInit] Remove old API, introduce new MemInit API.\n\nIntroduces new heap-zero-init API. We\u0027ve realised that it\u0027s better to be\nable to individually control MTE and heap zero-init. Having\nheap-zero-init not be controllable without affecting MTE affects our\nability to turn off heap-zero-init in zygote-forked applications.\n\nBug: 135772972\nTest: On FVP: atest -s localhost:5555 malloc#zero_init \\\nTest: malloc#disable_mte heap_tagging_level\nChange-Id: I8c6722502733259934c699f4f1269eaf1641a09f\n"
    },
    {
      "commit": "446b4dde724ee64a336a78188c3c9a15aebca87c",
      "tree": "4a91430432ee114aa75a82cc8c29e049ee7cce8b",
      "parents": [
        "b4fd07297606de111c10d0f9a000fdb1e2280387"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 14 13:34:20 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 14 13:34:20 2021 -0800"
      },
      "message": "Make \"disable memory mitigations\" and \"set heap tagging level\" more available.\n\nThese were only available internally via android_mallopt(), but they\u0027re\nlikely to be needed by more code in future, so move them into mallopt().\n\nThis change leaves the android_mallopt() options for now, but I plan on\ncoming back to remove them after I\u0027ve switched the handful of callers\nover to mallopt() instead.\n\nBug: http://b/135772972\nTest: treehugger\nChange-Id: Ia154614069a7623c6aca85975a91e6a156f04759\n"
    },
    {
      "commit": "7e20117a36c6cf7d3fbdee9b2ed4426c72185346",
      "tree": "100f96c73a64901a062ec4e0519bc278c2034827",
      "parents": [
        "e09fc24a94c1a196b8930f8f26c6f5f8c1a47d06"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Dec 21 14:08:38 2020 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Jan 11 10:55:51 2021 -0800"
      },
      "message": "Remove ANDROID_EXPERIMENTAL_MTE.\n\nNow that the feature guarded by this flag has landed in Linux 5.10\nwe no longer need the flag, so we can remove it.\n\nBug: 135772972\nChange-Id: I02fa50848cbd0486c23c8a229bb8f1ab5dd5a56f\n"
    },
    {
      "commit": "7cda75f1d3e147a300d7ff4d690b13e36bff5c5d",
      "tree": "0d4390746ae35c223432964fce5041d3dc280bed",
      "parents": [
        "9aa6b15d799ac246e842552fca555920a93ce46b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 22 13:22:35 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 22 13:22:35 2020 -0700"
      },
      "message": "Add DoNotOptimize and use it in tests.\n\nBug: http://b/148307629\nTest: treehugger\nChange-Id: I3b1726ae55116f6553ea38fe163abdde179c21f0\n"
    },
    {
      "commit": "5d3aa86cd1fe2e8b1920003b14b9a0c91153b111",
      "tree": "e17b86fb2a85a913c20d5f91405ef524e7c0c1c8",
      "parents": [
        "4edf74ab1ae2da4bda80d19f4c014e983c74903d"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Sep 11 15:05:17 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Oct 08 14:02:36 2020 -0700"
      },
      "message": "Add an API for per-process disabling memory initialization.\n\nIntroduce an android_mallopt(M_DISABLE_MEMORY_MITIGATIONS) API call\nthat may be used to disable zero- or pattern-init on non-MTE hardware,\nor memory tagging on MTE hardware. The intent is that this function\nmay be called at any time, including when there are multiple threads\nrunning.\n\nDisabling zero- or pattern-init is quite trivial, we just need to set\na global variable to 0 via a Scudo API call (although there will be\nsome separate work required on the Scudo side to make this operation\nthread-safe).\n\nIt is a bit more tricky to disable MTE across a process, because\nthe kernel does not provide an API for disabling tag checking in all\nthreads in a process, only per-thread. We need to send a signal to each\nof the process\u0027s threads with a handler that issues the required prctl\ncall, and lock thread creation for the duration of the API call to\navoid races between thread enumeration and calls to pthread_create().\n\nBug: 135772972\nChange-Id: I81ece86ace916eb6b435ab516cd431ec4b48a3bf\n"
    },
    {
      "commit": "978eb16cd400c67f756fb572a9c4ef54c758cf7a",
      "tree": "d280b5ecd3cbf32d4c35eac3984622ec88f23228",
      "parents": [
        "f15d33e2f9171213b16f6d59a9823cc298295038"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Sep 21 15:26:02 2020 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Sep 24 17:01:54 2020 +0000"
      },
      "message": "Copy the M_THREAD_DISABLE_MEM_INIT constant value into malloc.h.\n\nThis will allow platform and application developers to use it.\n\nBug: 163630045\nChange-Id: If9a361cb97aaf62d3fa124b60f64d51d609af48d\n"
    },
    {
      "commit": "8844879212852a70918df1c9ebcac4d574f1fcd9",
      "tree": "3aedf7fcb684f452d9353fa5b187a1cb706403d9",
      "parents": [
        "4d3802baa4321b64ae3952b12aea48228a24c8d6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 28 14:15:31 2020 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 28 18:20:32 2020 -0700"
      },
      "message": "Add support for new scudo mallopt options.\n\nBug: 162092537\n\nTest: Ran new unit tests.\nChange-Id: I4b7d17a9e98166c03cd153eb9e9d847693914ea3\n"
    },
    {
      "commit": "d3060019de533cc1e1ccf444c80b37ebb3490c9f",
      "tree": "0b8b45a1b6e7e4ec4a92bdf5c1bb2c8ed5752dcf",
      "parents": [
        "514faf92c82ca4f88e4a58f771ff5e393ceec317"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Apr 01 19:54:48 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue May 05 13:28:16 2020 -0700"
      },
      "message": "Introduce a new heap tagging level, M_HEAP_TAGGING_LEVEL_SYNC.\n\nThe SYNC tagging level enables stack trace collection for allocations and\ndeallocations, which allows allocation and deallocation stack traces to\nappear in tombstones when encountering a tag check fault in synchronous tag\nchecking mode.\n\nBug: 135772972\nChange-Id: Ibda9f51b29d2c8e2c993fc74425dea7bfa23ab1e\n"
    },
    {
      "commit": "edaf03ea183ed5cbb2724e6cb5f90ebf943af65c",
      "tree": "59fa6c9b42971e207cabc62e18190728d9a615e4",
      "parents": [
        "33318f51972de2a7973efb7d9d2f00de567d2e3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 18:27:09 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 18:27:09 2020 -0800"
      },
      "message": "Remove `return` after `GTEST_SKIP`.\n\nTest: treehugger\nChange-Id: I5efc31f82a979fcd8d3051c72ed8e6201b3b0d1b\n"
    },
    {
      "commit": "45819dde10da8fb28a4ce9e6fc17f852839cd2c9",
      "tree": "eff1d1c5f125f17676aa2f5231cf526371d71de8",
      "parents": [
        "f2549c8369d7da5bc62e9d171211eff8fa46b9bd"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Jan 09 11:00:43 2020 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Feb 20 15:25:08 2020 -0800"
      },
      "message": "Allow android_mallopt(M_SET_HEAP_TAGGING_LEVEL) to control scudo heap tagging.\n\nThe tag level may now be async, which is now the default. When the tag level\nis set to none, memory tagging is disabled in the allocator using the new\nAPI proposed in https://reviews.llvm.org/D70762 .\n\nBug: 135772972\nChange-Id: I847f5822a70913c446ed9ffa13792177bbfc96af\n"
    },
    {
      "commit": "cce88c0a03c369be98f38594c36c7edb40cefd23",
      "tree": "bcc698c97d16e4df446452dd2ba7636a90846713",
      "parents": [
        "06ea3cf8830106103c4e3037f19d86ea76969e09"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Feb 12 17:41:01 2020 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Feb 12 17:41:01 2020 -0800"
      },
      "message": "Update malloc_info test for scudo.\n\nScudo implemented malloc_info for the primary allocator, so add some\nsmall amount of validation.\n\nTest: Ran the malloc_info tests and verified they pass.\nChange-Id: Ib7c609e46cc1ed73fa5c042df92fa9b568880f21\n"
    },
    {
      "commit": "201dcf491bf74fe589e93584f97f3908c353af4b",
      "tree": "357a5bbd07cf84d8fc9c4e161c1ae6c29bc33ad8",
      "parents": [
        "0e0b473a4c01ec6b739ac7aa9eccb63005fa3da2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 29 13:09:31 2020 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 29 14:40:37 2020 -0800"
      },
      "message": "Add a disabled test to verify alloc after fork.\n\nThe alloc after fork is a test that should pass, but jemalloc\ndoesn\u0027t right now. Leave the test disabled until the native\nallocator can pass this.\n\nTest: Ran the test 1000 times on glibc to verify it passes.\nTest: On device, verified it does not run.\nChange-Id: I482af4db2fee81c947ac081c7a6f25a2aff80350\n"
    },
    {
      "commit": "b874c339cdfc5e162bb735f2af8181edfb512858",
      "tree": "866cd1eee7cfb734642f03aeff570efab718c53f",
      "parents": [
        "f62865767f480e45f042b09bbc7604d5bebdd9ed"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 21 16:39:05 2020 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 27 09:36:34 2020 -0800"
      },
      "message": "Use platform signal name.\n\nTest: Compiles and test passes.\nChange-Id: I8d19431ded97f5a8e7baa0c85b9496eddd36a25a\n"
    },
    {
      "commit": "f5421dde7f6c9d2c79f840e474072fab31478d25",
      "tree": "b2614818288500d7adebe17ca37352fa980031db",
      "parents": [
        "b72fed164ed633525e0376087e51daa4652f8e16",
        "f32494c9857e4c95766078ab5b87cf342e6428d4"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 16 17:20:26 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 16 17:20:26 2020 +0000"
      },
      "message": "Merge \"Add new malloc align tests.\""
    },
    {
      "commit": "175c8867b05ec14a8da1fd528c2bf17c4e67c280",
      "tree": "ac5536a5465cb98d1810c204dd6762544abdbc5a",
      "parents": [
        "a04764bd286cf86f28d65487e1b6d6d36c9671e8"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Thu Jan 02 19:54:57 2020 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Jan 15 22:55:03 2020 +0000"
      },
      "message": "allow for heapprofd\u0027s signal to be multiplexed\n\nThis patch refactors heapprofd_malloc to make it easier to reuse the\nreserved signal for multiple purposes. We define a new generic signal\nhandler for profilers, which dispatches to more specific logic based on\nthe signal\u0027s payload (si_value).\n\nThe profiler signal handler is installed during libc preinit, after\nmalloc initialization (so races against synchronous heapprofd\ninitialization need not be considered). In terms of code organization, I\ncopied the existing approach with a loosely referenced function in\nbionic_globals.h. Do tell if you\u0027d rather a different approach here.\n\nThe profileability of a process is quite tied to the malloc\nfiles/interfaces in bionic - in particular, it\u0027s set through\nandroid_mallopt. I do not change that, but instead introduce a new\nandroid_mallopt option to be able to query profileability of the\nprocess (which is now used by the new profiler signal handler). As part\nof that, gZygoteChildProfileable is moved from heapprofd_malloc to\ncommon (alongside gZygoteChild).\n\nI\u0027ve removed the masking and reraising of the heapprofd signal when\nracing against malloc_limit init. We\u0027re ok with taking a simpler\napproach and dropping the heapprofd signal in such an unlikely race.\n\nNote: this requires a corresponding change in heapprofd to use sigqueue()\ninstead of kill(), as the latter leaves the si_value uninitialized(?) on\nthe receiving side.\n\nBug: 144281346\nChange-Id: I93bb2e82cff5870e5ca499cf86439860aca9dfa5\n"
    },
    {
      "commit": "f32494c9857e4c95766078ab5b87cf342e6428d4",
      "tree": "96de5427ea523ff10a269de185160a4b8f50a855",
      "parents": [
        "fee43f6e89e94d1a7b3ff2363492f7970cb38c28"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 08 14:19:10 2020 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 15 09:22:21 2020 -0800"
      },
      "message": "Add new malloc align tests.\n\nBug: 146576216\n\nTest: Ran the test on jemalloc and glibc.\nTest: Ran the test on scudo and verified that failed without the align\nTest: change.\nChange-Id: I31a96f8672c6bce2423210300288a13df1eda42a\n"
    },
    {
      "commit": "ff88fb0d3adbc67a4f94f5ef7e2b5bcc7a96c8f3",
      "tree": "1a78e188d9e51383579f697cb5532846b841cd69",
      "parents": [
        "1994f28be2c0faf2b70b1ca8fff7d8d2fa68d922"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 04 18:40:00 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 06 10:42:42 2019 -0800"
      },
      "message": "Fix allocations escaping malloc debug.\n\nWhen using a FILE object for some malloc debug functions, calling\nfprintf will trigger an allocation to be put in the object. The problem\nis that these allocations were not allocated by the malloc debug\nwrapper and they get freed during the fclose as if they are malloc\ndebug allocation. In most cases, the code will detect the bad pointer\nand leak the memory, but it might also cause a crash.\n\nThe fix is to avoid using fprintf so that no allocations are made\nin the object that survive and need to be freed in the fclose call.\n\nChange the MallocXmlElem.h to use a file decsriptor not a FILE object.\n\nAdd new unit and system tests to detect this case.\n\nBug: 143742907\n\nTest: Ran unit and system tests.\nTest: Ran bionic unit tests.\nChange-Id: I524392de822a29483aa5be8f14c680e70033eba2\n"
    },
    {
      "commit": "85169658e1c03a17ceec0548c691bab1ea943cae",
      "tree": "d26690905fd29611f4d40d35cedb686c6164394d",
      "parents": [
        "57f01b91d7812d7432bce4f8167953d72b613e64"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 09 18:41:55 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 09 18:54:53 2019 -0700"
      },
      "message": "Add support for scudo.\n\nAs the first pass, the malloc_info for scudo doesn\u0027t return anything.\nThis feature is hardly ever used, so this seems fine for the first\nrevision.\n\nBug: 137795072\n\nTest: Ran unit tests on a taimen using scudo and a taimen using jemalloc.\nChange-Id: I675386ae17ba5505c27bd9da12c60242d795464a\n"
    },
    {
      "commit": "2b0638ef29bb305f8a37c16c706fb0ee80a994c0",
      "tree": "bea668f7605903876618505b7aec795da94ea4ae",
      "parents": [
        "1ffee0cfc1e3a7fddf4cbe633694be91e72265a1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 11 19:05:29 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 16 12:27:33 2019 -0700"
      },
      "message": "Make bionic_malloc.h a platform header.\n\nInstead of having platform directories directly include the\nprivate header, create a platform header directory and export it.\n\nBug: 130763340\n\nTest: Builds.\nChange-Id: Ie0f092b3fe077a3de8b90266c0b28bfbc20d0dfa\nMerged-In: Ie0f092b3fe077a3de8b90266c0b28bfbc20d0dfa\n(cherry picked from commit 8f582ef2f8a77d953d0e9f33387f592d20f852e2)\n"
    },
    {
      "commit": "804cebe1c628e405011db7a03bcd31f2bdf10b09",
      "tree": "b5d3ce6a5cb3a463d0ff14e31ac21488cf57f5f4",
      "parents": [
        "8fef03f6091e80d9da83ffa31e31ad2015fd97c6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 20 08:50:23 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 20 08:57:07 2019 -0700"
      },
      "message": "Run pvalloc/valloc tests in unsupported envs.\n\nIn order for cts to enumerate tests, even tests that are not supported\nneed to run and be skipped. Make this true for pvalloc/valloc\ntests.\n\nChange-Id: I863a179ee6810824a7117f44cc9aa3f86d01eb5b\nTest: Ran tests in 32 bit and 64 bit and verified tests are skipped in\nTest: 64 bit and run properly in 32 bit.\n"
    },
    {
      "commit": "d5ab0a5706713240031c419a943e0f317b858e1e",
      "tree": "11c86815f3380448c4fc644ac0f530966c35309c",
      "parents": [
        "745137c827f6e593ddf1c01783ca41a676ddd172"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 19 12:03:57 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 19 12:03:57 2019 -0700"
      },
      "message": "Change pvalloc call to valloc in test.\n\nFound by kostyak, the call should have been valloc, not pvalloc.\n\nTest: Ran unit tests on taimen.\nChange-Id: I676b8f3f8051be6768e2ad87b579844560b4f619\n"
    },
    {
      "commit": "db9706afc376f74938e4060fa030913e87bb2be1",
      "tree": "22e9605dd1edde31191b9ed8e2a39907deca56f0",
      "parents": [
        "1eb6d36ba8666dace9a6f0c1db354750b331bf24"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 02 18:33:11 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 03 07:21:45 2019 -0700"
      },
      "message": "Fix malloc_info missing large allocs.\n\nAlso change the names of some of the functions to make it very obvious\nthat the functions being called are in je code.\n\nWrite new test to make sure mallinfo and malloc_info match.\n\nBug: 131864803\n\nTest: New unit tests pass (along with all other bionic unit tests).\nChange-Id: I26eda7e64f57a8c56cc8d70e3ed6a29dcb87f630\nMerged-In: I26eda7e64f57a8c56cc8d70e3ed6a29dcb87f630\n(cherry picked from commit 125d32cb469d8e31f656543c3ad7b82154bc1689)\n"
    },
    {
      "commit": "109072038a470a77396582a64ddba825fe813b8f",
      "tree": "d3a375f926c47f8a6c2da63f878a5fa53252bb4b",
      "parents": [
        "e08288465ece24860d61788b975a8267a4594379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 08:51:02 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 08:51:02 2019 -0700"
      },
      "message": "Convert new tests to GTEST_SKIP.\n\nThese went in while we were waiting for the infrastructure to catch up.\n\nTest: treehugger\nChange-Id: I1179d1aba8f1369d320f82705958b36c6930babf\n"
    },
    {
      "commit": "e08288465ece24860d61788b975a8267a4594379",
      "tree": "95bdb088b066aa9d1ed495244c13b3e644acbdec",
      "parents": [
        "e990078f055314baab073380c58819181203dd63",
        "bcaa454d32e1b4ccf92467bb263d627695ac9a5b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 02:05:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 02:05:57 2019 +0000"
      },
      "message": "Merge \"bionic tests: use GTEST_SKIP.\""
    },
    {
      "commit": "8de6b46ad8af95db0e51568277ed0ad5e9dcda5a",
      "tree": "9c64a574dc60ce0873236837d009a8666a1c11d2",
      "parents": [
        "118ab10d750bd9faab2dadf66df546a2c44afd3b"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Mar 22 13:22:28 2019 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Mar 22 13:23:18 2019 -0700"
      },
      "message": "Disable malloc_info test under HWASan.\n\nHWASan does not implement malloc_info.\n\nTest: bionic-unit-tests with SANITIZE_TARGET\u003dhwaddress\nChange-Id: I61d50d9110fbca1784ed39950ed6c5540ca0c9a7\n"
    },
    {
      "commit": "1fc5ccfe762f4cf2322a53215934492003dae49e",
      "tree": "b07af2f8b2466d0a7210b2aaacd97af5fe70efbd",
      "parents": [
        "ac74615c1c3638d33448f0f6995fb8bc9599f062"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 15 18:06:15 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 15 10:54:55 2019 -0700"
      },
      "message": "Add a platform API for setting an allocation limit.\n\nIntroduce an M_SET_ALLOCATION_LIMIT enumerator for android_mallopt(),\nwhich can be used to set an upper bound on the total size of all\nallocations made using the memory allocation APIs.\n\nThis is useful for programs such as audioextractor and mediaserver\nwhich need to set such a limit as a security mitigation. Currently\nthese programs are using setrlimit(RLIMIT_AS) which isn\u0027t exactly\nwhat these programs want to control. RLIMIT_AS is also problematic\nunder sanitizers which allocate large amounts of address space as\nshadow memory, and is especially problematic under shadow call stack,\nwhich requires 16MB of address space per thread.\n\nAdd new unit tests for bionic.\n\nAdd new unit tests for malloc debug that verify that when the limit\nis enabled, malloc debug still functions for nearly every allocation\nfunction.\n\nBug: 118642754\nTest: Ran bionic-unit-tests/bionic-unit-tests-static.\nTest: Ran malloc debug tests and perfetto integration tests.\nChange-Id: I735403c4d2c87f00fb2cdef81d00af0af446b2bb\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": "6c619a0da3f96a26d91c1db48fd3e3be156aabe5",
      "tree": "aa0802d01d19ed0891e6b77a732cc72ed5617dcc",
      "parents": [
        "4e167f35d602f9dcede3b74ff3e09e88f3edb398"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 17:59:51 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 07 08:39:55 2019 -0800"
      },
      "message": "Refactor the malloc_info code.\n\nmalloc_info needs to be per native allocator, but the code treated it\nlike a global function that doesn\u0027t depend on the native memory allocator.\n\nUpdate malloc debug to dump the actual pointers that it has been tracking.\n\nTest: bionic-unit-tests pass.\nTest: malloc debug tests pass.\nTest: malloc hook tests pass.\nChange-Id: I3b0d4d748489dd84c16d16933479dc8b8d79013e\nMerged-In: I3b0d4d748489dd84c16d16933479dc8b8d79013e\n(cherry picked from commit a3656a98b10d2a4a6194a5d9705ad9c2cc5877b0)\n"
    },
    {
      "commit": "e4cdbc47549680db6ada24fdb6a22e68409d578a",
      "tree": "cb1f89abc61a2272aa30d0b8e0dcd2b4738f3562",
      "parents": [
        "c682e3b6e5549aea7be655f81bf22a4431c9c955"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 08 17:30:58 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 12 14:19:07 2019 -0800"
      },
      "message": "Refactor malloc common into distinct pieces.\n\nThe pieces:\n- The malloc common shared by static and dynamic code (malloc_common.cpp).\n- The code for shared libraries that includes any dlopen\u0027ing\n  (malloc_common_dynamic.cpp).\n- The implementation of perfetto\u0027s heapprofd (malloc_heapprofd.cpp).\n\nThis makes it easier to see what\u0027s going on in the many different areas.\nIt should also make it easier to add the allocation capping option.\n\nOther related changes:\n- Update the unit tests for android_mallopt. All of the current options\n  don\u0027t work on static binaries, so make sure that is reflected in the test.\n- A few names changes to make sure that all code is consistent.\n\nTest: Ran tests (malloc hooks/malloc debug/perfetto/bionic unit tests).\nChange-Id: I0893bfbc0f83d82506fac5d1f37cf92fbdef6f59\n"
    },
    {
      "commit": "4e56228637b5e82fad30ce11b231a5bfe1cf46ea",
      "tree": "5711a3b2a2c73f7f0f3be630be0e604f6e74dd27",
      "parents": [
        "1d3c56bc308c34217e36def4b408d8bae390924e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 07 14:20:03 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 07 14:20:03 2019 -0800"
      },
      "message": "Fix flakiness of mallinfo test.\n\nThe test was really only supposed to verify that mallinfo eventually\nincrease after allocations of certain sizes. Sometimes the mallinfo\nreturned decreases due to some compaction event, so don\u0027t fail in that\ncase.\n\nBug: 124060188\n\nTest: Ran the test 2000 times (32 bit and 64 bit). It would fail within about\nTest: 200 test iterations before.\nChange-Id: Ie019107be163dcf275cedf4d1bc5759278def483\n"
    },
    {
      "commit": "f827d82cdde0fe7f11015fb5ead39bac861ab6bd",
      "tree": "a322a9f7b880e20144916208388ed2540fd60c9e",
      "parents": [
        "73ee7a6320024c8f390d954a01b7a067c919bfc4",
        "7cc670637005e88e00be467c6c387112644a9209"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Feb 06 22:04:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 22:04:09 2019 +0000"
      },
      "message": "Merge \"Cleanup bionic tests with hwasan.\""
    },
    {
      "commit": "7cc670637005e88e00be467c6c387112644a9209",
      "tree": "0141df753769639688cc216287be3f7f76d5cbdf",
      "parents": [
        "352853a53525ecb2a120dfa4e9aa03b3970df8ee"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Feb 05 18:43:34 2019 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Feb 06 13:59:16 2019 -0800"
      },
      "message": "Cleanup bionic tests with hwasan.\n\nThe tests were patched earlier to run with tagging heap allocator.\nThis change enables hwasan code instrumentation in the tests themselves,\nand fixes the issues that arise, mainly in the code that:\n* compares addresses of unrelated stack variables\n* compares address of a stack variable with stack limits as found in\n  /proc/self/maps\n* writes address of a stack variable to a hardware watchpoint register\netc.\n\nNote that static tests are broken at the moment, like all static\nbinaries. Dynamic tests pass 100% with this change.\n\nBug: 114279110, 124007027\nTest: SANITIZE_TARGET\u003dhwaddress; run dynamic bionic tests\n\nChange-Id: I68b8df9dd3e30b47734ddc083811a75a7f27deaa\n"
    },
    {
      "commit": "ecc37e38771aaf994a97c51104017a7d1b73a568",
      "tree": "2b1a1d908e99eb5181cdaf77e06005a4459dcaa1",
      "parents": [
        "176d2fbcaefe4691b8fd7844f6cec8e7a1a22c76"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Fri Dec 14 15:57:21 2018 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Jan 23 18:30:54 2019 +0000"
      },
      "message": "conditional zygote child heap profiling + android_internal_mallopt\n\nOn user builds, heapprofd should only be allowed to profile apps that\nare either debuggable, or profileable (according to the manifest). This\nchange exposes extra zygote-specific knowledge to bionic, and makes the\ndedicated signal handler check for the special case of being in a zygote child.\n\nWith this \u0026 the corresponding framework change, we should now be\nhandling the 4 combinations of:\n  {java, native} x {profile_at_runtime, profile_at_startup}.\n\nSee internal go/heapprofd-java-trigger for further context.\n\nTest: on-device unit tests (shared \u0026 static) on blueline-userdebug.\nTest: flashed blueline-userdebug, confirmed that java profiling activates from startup and at runtime.\nBug: 120409382\nChange-Id: Ic251afeca4324dc650ac1d4f46976b526eae692a\n(cherry picked from commit 998792e2b6e1b84222b5d124f13ecdcb446cb22f)\nMerged-In: Ic251afeca4324dc650ac1d4f46976b526eae692a\n"
    },
    {
      "commit": "09a19aa0e766340d01ebd8697d648721bbee5fab",
      "tree": "76e0dcd68b03a14f8a363374cc6ff57aaa759585",
      "parents": [
        "cfd628009c16670ee9ad5756b73717ccd7444644"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 16 13:28:56 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 16 13:34:36 2018 -0800"
      },
      "message": "Add test for mallinfo.\n\nBug: 119580449\n\nTest: Test passes.\nChange-Id: Ib605e550b7d6d8fd2336ad61b678a7e63f8ecffb\n"
    },
    {
      "commit": "af1b8ddaa976bc95007353bc46f59cf5959af7ad",
      "tree": "3c4e707580da50ac0a61aa8b7ad45a51b3642c90",
      "parents": [
        "e691069366401dc385943cb1702beb9d4feecb85"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 07 15:28:16 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 07 17:11:42 2018 -0800"
      },
      "message": "Add smoke tests for mallopt options.\n\nTest: Unit tests pass.\nChange-Id: If213f4338078011ff12996c1b2a6f6858b51d824\n"
    },
    {
      "commit": "acd6f4f9f5d248345231542df91947b44a309c26",
      "tree": "56ebc05a9af0de40af4c624e722ca2e489d0c7f1",
      "parents": [
        "96bd339c51194bf56781ccc738fde8babd618fc6"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Nov 06 16:48:27 2018 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Nov 06 16:59:25 2018 -0800"
      },
      "message": "Disable a few bionic tests under HWASan.\n\n* HWASan report invalid use of the allocator api (like alignment not\nbeing power of two, or allocation size too large) in a way tests do not\nexpect.\n* Code in .preinit_array runs before HWASan shadow is initialized and\nneeds to be excluded from instrumentation.\n* It looks that mm system calls (mmap/mprotect/etc) will not allow\ntagged pointers. In fact, the use of mprotect on malloc()ed memory is\ndoubtful - one can imagine some kind of speculative load from such\nmemory, as compiler knows that it is addressable.\n\nBug: 114279110\nTest: bionic-unit-tests with hwasan\n\nChange-Id: I6ba4b46a0d554de77c923ad134cf156ce4ddba1b\n"
    },
    {
      "commit": "b177085ce7219562eecf77f2e8de49f8f2605005",
      "tree": "573947a27714273f7d78e9c6f85c9fd30e63dba9",
      "parents": [
        "e4e3de819d05481422f8bb9925486118924bf4a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 18 12:52:42 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 26 14:24:18 2018 -0700"
      },
      "message": "Add reallocarray(3).\n\nOriginally a BSD extension, now in glibc too. We\u0027ve used it internally\nfor a while.\n\n(cherry-pick of e4b13f7e3ca68edfcc5faedc5e7d4e13c4e8edb9.)\n\nBug: http://b/112163459\nTest: ran tests\nChange-Id: I813c3a62b13ddb91ba41e32a5a853d09207ea6bc\nMerged-In: I813c3a62b13ddb91ba41e32a5a853d09207ea6bc\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": "3a32d95e288457ad12c3e1ff2034ca0d546704e3",
      "tree": "04d8ea3325dbd6520cfd552a488a331cefca5614",
      "parents": [
        "a09953e1a8df604d4c2c5f5b3b4c86e5b97694bf"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 15 13:30:44 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 15 14:18:08 2017 -0700"
      },
      "message": "Update posix_memalign testing.\n\nMove all tests into stdlib_test.cpp since that\u0027s where the definition lives\nin bionic.\n\nAdd a sweep test and a various size test.\n\nTest: Run new unit tests on glibc and angler.\nChange-Id: Ief1301f402bea82ce90240500dd6a01636dbdbae\n"
    },
    {
      "commit": "a1c0d2fd4ce96e123c4ae6506c9d637d747e1fe2",
      "tree": "b1f89edbd67d6b09b9cbdfb1bf03b65b2dac9ad4",
      "parents": [
        "ac58d33d343eba6a3370f541467f09802c48b24b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 15 15:50:19 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 15 16:59:16 2017 -0700"
      },
      "message": "Add support for modifying decay timer.\n\nAdd the mallopt function, and only a single option so far.\n\nBug: 36401135\n\nTest: Built and booted bullhead.\nTest: Ran jemalloc unit tests.\nTest: Ran bionic unit tests.\nTest: Ran a test that allocated and free\u0027d a large piece of memory,\nTest: and verified that after changing the parameter, the PSS\nTest: sticks around (decay timer set to 1), the PSS is purged (decay\nTest: timer set to 0).\nChange-Id: I6927929b0c539c1023d34772d9e26bb6a8a45877\n"
    },
    {
      "commit": "72df6708c829a4c6494936fdfbda6dc7e68e647b",
      "tree": "17ede0d54b6f50c3598a3fcec56f50754067690d",
      "parents": [
        "72bca4b4105e24058f3f2eca024382bedb122a30"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 11 15:51:31 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 12 17:30:30 2016 -0800"
      },
      "message": "Fix the default alignment of the allocations.\n\nIn order to enforce this constraint:\n\nThe pointer returned if the allocation succeeds shall be suitably\naligned so that it may be assigned to a pointer to any type of object\nand then used to access such an object in the space allocated.\n\nForce all allocations on 32 bit systems to have 8 byte alignment,\nand all allocations on 64 bit systems to have 16 byte alignment.\n\nAdd a test to verify that the allocator returns the correct alignments.\n\nBug: 26739265\nChange-Id: I9af53279617408676b94e4ec6481b3ed7ffafc6a\n"
    },
    {
      "commit": "884f76e3aa081740f7cfe582b11af7446bf77bd9",
      "tree": "ebd6b34509a2198628aa5a25b76a8ff4af4c2804",
      "parents": [
        "8fa00a5836b49bbacfd08151edb039ed7c6db21d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 10 20:43:22 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 11 08:45:40 2016 -0800"
      },
      "message": "Add tests for zero-sized allocations.\n\nPOSIX lets us return null and set errno, but that would be annoying and\nsurprising.\n\nBug: http://b/27101951\nChange-Id: I320a8a14884abb806a8d30e3e6cf1ede28b49335\n"
    },
    {
      "commit": "ad33ebead801f24d3197bc16f875501729e98485",
      "tree": "7881fd20998455aa8bb2a890ef2d7b06ac724723",
      "parents": [
        "d3e5301a75256171199b23f6ba2c6651d05ce5f1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 16 12:07:25 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 16 14:48:03 2015 -0800"
      },
      "message": "Fix bug in dlmalloc\u0027s version of calloc.\n\nUnder some circumstances, doing a calloc will make sure that the memory\nreturned will be zero up to the size of the requested size. However, if\nthere is more usable size than the requested size, that extra part\nof the allocation will not be zeroed. This change fixes it so that the\nentire usable memory is always zeroed.\n\nChange-Id: I8a66d6767c074023c4ba3568bf2705e1886740fc\n"
    },
    {
      "commit": "4caa1f09770ea3e5ca22afbe8aa0900810a0dbfe",
      "tree": "2bda183c2c930871e73486ea3e9c54e80e500f95",
      "parents": [
        "d5fbc37119ef6cd757ceb449cb071ee03c66590e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 20 09:16:57 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 22 10:23:12 2014 -0700"
      },
      "message": "Implement malloc_info(3).\n\nExpose jemalloc stats through the malloc_info(3) interface.\n\nBug: 16874689\nChange-Id: I4358ac283002e60ff161107028d1a3fb1e9afb0a\n"
    },
    {
      "commit": "636196438180fd37027bf7b7119a436169b6923e",
      "tree": "cc42614ca2440bbb1b64f191d5c2eefff038e2de",
      "parents": [
        "a217a0cdb3ff78f6b59d64fd4356f87643ad9d1e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 16 23:35:53 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 16 23:35:53 2014 -0700"
      },
      "message": "Use a separate config.h for config like defines.\n\nThis allows an easier way to share config parameters between unit tests\nand the bionic code.\n\nIt also fixes a problem where the 32 bit bionic tests based on glibc, or\nthe cts list executable did not have the pvalloc,valloc tests.\n\nChange-Id: Ib47942cb8a278252faa7498a6ef23e9578db544f\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": "a403780538ac9d1a260e064df6599663f8cc4166",
      "tree": "340dd81279be34b49622c68dc037ceb5cd73bcc9",
      "parents": [
        "0ada9388e74693d990bdbb4af92c33bae8b34d4b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 09 19:14:11 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 12 15:08:18 2014 -0700"
      },
      "message": "Put all allocation functions into dispatch table.\n\nImplement these new functions for all of the debug malloc types.\n\nFix a number of bugs in the debug malloc functions related to overflow\nconditions.\nFix a bug in dlpvalloc due to an overflow condition.\n\nFix various other bugs in the debug malloc functions.\n\nAdd new tests for malloc functions.\n\nBug: 11225066\n\nChange-Id: Idf50f389603e2157645565bc15cd9365eec2e9dd\n"
    },
    {
      "commit": "72bbd423579bb971dc06cdd3c06201faf3fe95e6",
      "tree": "222c460d45ac120ae45940628c501d6cfb50f84b",
      "parents": [
        "afb89c2a01089bb247456634a15a58f111bb55a6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 08 11:14:03 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 20 14:47:33 2014 -0700"
      },
      "message": "Support for jemalloc to replace dlmalloc.\n\nTo use jemalloc, add MALLOC_IMPL \u003d jemalloc in a board config file\nand you get the new version automatically.\n\nUpdate the pthread_create_key tests since jemalloc uses a few keys.\nAdd a new test to verify memalign works as expected.\n\nBug: 981363\n\nChange-Id: I16eb152b291a95bd2499e90492fc6b4bd7053836\n"
    },
    {
      "commit": "885f3b9cad01b8158aadc55c159c17dbf34f622c",
      "tree": "55991f909d2a12f185c0773de57cdf01b7074ecd",
      "parents": [
        "b7b4f5b838cd41407c734af74e8211f5c7da0036"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 21 17:48:01 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 07 14:55:32 2013 -0700"
      },
      "message": "Implement malloc_usable_size for debug impls.\n\n- Implemented chk_memalign.\n- Fixed a few bugs in leak_memalign.\n- Implemented {leak,fill,check,qemu}_malloc_usable_size.\n- Make malloc_usable_size update at run time.\n- Add malloc_test.cpp as a small set of tests for the\n  malloc debug routines.\n- Fix the qemu routines since it\u0027s been broken since it moved to C++.\n- Add support for the %u format to the out_vformat in libc_logging.cpp.\n  This is used by the emulator code.\n\nTested using the bionic-unit-tests with setprop libc.debug.malloc\nset to 1, 5, and 10.\n\nI tested as much as possible on the emulator, but tracing doesn\u0027t appear\nto be working properly.\n\nBug: 6143477\n\nMerge change from internal master.\n\n(cherry-picked from commit 3d594c258045783fc9e1956ce7a4d91e302f011e)\n\nChange-Id: I4ae00fffba82315a8c283f35893fd554460722fb\n"
    }
  ]
}
