)]}'
{
  "log": [
    {
      "commit": "92b8d64f41da3c76f039d72168c9d27a5081bc06",
      "tree": "74f33c183194b9fe9ba8f8968a3b815cf819dfd4",
      "parents": [
        "3e0defac5d546c3a0ed0f5faae1a40502ffac003"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 13 00:03:26 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 13 01:50:00 2021 +0100"
      },
      "message": "Update API of MapInfo from libunwindstack\n\nUse accessors to for all the fields.\n\nTest: build\nChange-Id: I6ae458002e059ef2f9d73931cc68f2f698f85d7e\n"
    },
    {
      "commit": "4956c372cf320328952665629b2626e7cbc84c54",
      "tree": "7a02304c6c2eadc93b1b7a357fb31a143b661a89",
      "parents": [
        "e592dacfa254f59bb097c98d118d0c860b181da1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Dec 19 16:35:51 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 02 14:09:50 2020 -0800"
      },
      "message": "Move bionic_macros.h from private to platform.\n\nTest: treehugger\nChange-Id: Ie473914f4c8924c7240b3ac22093a9daf42fc948\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": "9782b8707484addc0c90b641422e583e95ab7b35",
      "tree": "6c76c9f4832eae6764ee9425fc8f50bd19fa7c79",
      "parents": [
        "9cf76012aa5edc11050920ab1b65817c1be1a112"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 18 13:36:50 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 18 21:11:22 2019 +0000"
      },
      "message": "Move to the libc++ demangler.\n\nBug: 136138882\n\nTest: Ran malloc debug tests.\nTest: Ran an app with backtrace_full and verified demangling working in\nTest: log file.\nTest: Enabled leak checking and verified that the logs include properly\nTest: demangled.\nChange-Id: Ic4fd9f1522451e867048ac1bea59d8c5ed0d3577\n"
    },
    {
      "commit": "c328e4465d12d760f5fbcb2daddf5fa4138f50b1",
      "tree": "fd91c386332bbe1198cb0bedc11505b76d146057",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 01 19:31:26 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 02 10:55:21 2019 -0700"
      },
      "message": "Disable info messages by default for malloc debug.\n\nAdd a new option verbose for malloc debug that is not enabled by default.\nThis disables all of the info log messages. It turns out these log\nmessages can add a measurable amount of time and can change the boot up.\n\nBug: 129239269\n\nTest: Adjusted unit tests pass.\nTest: Verified no messages unless verbose option used.\nChange-Id: I805cb7c8ecb44de88119574e59d784877cacc383\n"
    },
    {
      "commit": "76dcc478d348d07fa0e74a7f4d4c1e829eaa2bb8",
      "tree": "0652b53abee71ce853e36b8b0e16c657da7be4da",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Thu Mar 07 12:32:19 2019 +0800"
      },
      "committer": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Fri Mar 08 11:04:36 2019 +0800"
      },
      "message": "Malloc debug: fix mutex deadlock issue\n\nWhen we enable free_track option, one thread is in AddFreed-\u003eRemoveBacktrace\nflow (hold free_pointer_mutex_ first and try to lock frame_mutex_), and\nother thread do fork and enter PrepareFork flow (hold frame_mutex_ first\nand try to lock free_pointer_mutex_), this situation may result in mutex\ndeadlock issue.\n\nBug: 127733115\nTest: build pass and stress test pass\nChange-Id: Ie5fcc4ef6c169372ad73d81978cfb2a726b6c03e\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": "b34415046c91d8e4af4e748689af3cb0080e0b05",
      "tree": "f69a02f5e605b2a8e0e6575804d9493b64289824",
      "parents": [
        "1b82812635e35667df9d28e7416d4b02c2083dfe"
      ],
      "author": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Tue Feb 12 14:00:59 2019 +0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 14 17:15:03 2019 -0800"
      },
      "message": "malloc debug: fix LogFreeError error log\n\nWhen free_track option is enabled and malloc debug detects error in\nVerifyFreedPointer flow, if freed pointer\u0027s usable_size is more than\ng_debug-\u003econfig().fill_on_free_bytes(), the error log is not correct.\n\nThe max. bytes printed to error message should be the max bytes to\ncmp, not usable size.\n\nBug: 124420174\nTest: build pass and test pass\nChange-Id: I41f35ab3330e49e0a6ad276d405bf4f6c3f0ea92\n"
    },
    {
      "commit": "7f209a979c55a58e91946a2efd5f0b339ffe309c",
      "tree": "481e04cf25531a9ced30b032bb5ba93f06de674e",
      "parents": [
        "822326db922ac5d0e4dea8cff1d774e8f04db94a"
      ],
      "author": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Wed Jan 16 11:17:15 2019 +0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 22 15:54:36 2019 -0800"
      },
      "message": "Bionic malloc debug: add a new option \"abort_on_error\"\n\nThis new option causes an abort after malloc debug detects an error.\nThis allows vendors to get process coredumps to analyze memory for\ncorruption.\n\nBug: 123009873\nTest: New test cases added for unit tests and config tests.\n\nChange-Id: I6b480af7f747d6a82f61e8bf3df204a5f7ba017f\n"
    },
    {
      "commit": "93bdd6ae3ad8322b7be2be0201c8db7227631d14",
      "tree": "42ee959b96c2c2db42f0569554680dbe22ce39ef",
      "parents": [
        "4c5c45346fcc6f066a89bfc455f287fe2f4e3e41"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 05 11:12:38 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 24 08:44:53 2018 -0700"
      },
      "message": "Add support for using the new unwinder.\n\nThis adds a new option backtrace_full, when it is set, then it will use\nlibunwindstack.\n\nModify the dump to file data to dump the extra information from libunwindstack.\nAlong with the new dump file format, change the version to v1.1.\nUpdated document for new format of file data.\n\nAdd unit tests for the new functionality.\n\nBug: 74361929\n\nTest: Ran unit tests.\nChange-Id: I40fff795f5346bba7b9d7fde2e04f269ff4eb7f1\n"
    },
    {
      "commit": "c151bc30789ade22d5423b20d2c72948284bba3c",
      "tree": "687fae810571b1147c5ccb0b5f31fb7515489537",
      "parents": [
        "8602538a15f89f91d6994c3abfd64a274bf7ddb0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 01 12:59:37 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 01 14:49:15 2018 -0700"
      },
      "message": "Fix nullptr dereference during sort.\n\nAdd new unit test that will crash without this fix.\n\nBug: 78900050\n\nTest: Ran unit tests.\nChange-Id: I73e1b89e965a7b399822c3a6f25cbc70d2d355e2\n"
    },
    {
      "commit": "4da2503d70dc4bc1444454876e3794b69227d90d",
      "tree": "d904c750ebac96aee76df44baad1320c0db211a3",
      "parents": [
        "a3f6f6c1b9135c90e410f5382b153db9a43a4db0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 07 13:38:48 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 02 18:59:23 2018 -0700"
      },
      "message": "Refactor malloc debug.\n\nChanges\n- Refactor the code so that only guards require creating a special header\n  for every pointer allocated.\n- Store only a single copy of every backtrace. This saves memory so that\n  turning on the backtrace option doesn\u0027t result in 10X memory usage.\n- Added new option track_allocs that only verifies pointers are valid for\n  free/malloc_usable_size/realloc.\n- Remove suffix from test names.\n- Add the TRACK_ALLOCS options to all guard options.\n- Add new option verify_pointers that is a lightweight way to verify\n  pointers that are passed to allocation routines.\n- Do auto-formatting of the code.\n- Updated documentation for all of these changes.\n\nBug: 74361929\n\nTest: Ran unit tests.\nTest: Ran libmemunreachable unit tests.\nTest: Ran an app with backtrace enabled.\n\nChange-Id: I3246c48ae4f9811f64622d90d0a9b4d9d818702c\n"
    }
  ]
}
