)]}'
{
  "log": [
    {
      "commit": "cb228fb4a91bdccfd974b8a4f45e2b6002e90728",
      "tree": "bef755285588a49afc5344e0bedcab6de517b84e",
      "parents": [
        "b52e4385c403d18a68309e568ac729c787d900c4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 16:05:19 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 16:05:19 2012 -0700"
      },
      "message": "libc: cleanups\n\nPrefix private functions with underscores, to prevent name\nconflicts.\n\nUse __error__ instead of error, since occasionally programs will\ncreate their own \"#define error ...\".\n\nChange-Id: I7bb171df58aec5627e61896032a140db547fd95d\n"
    },
    {
      "commit": "b52e4385c403d18a68309e568ac729c787d900c4",
      "tree": "ffeaf6389772780623222f84cd1ad8c241e9c38a",
      "parents": [
        "63f99f4a4e05353de2e8ba3d7bd4d882d716167a"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 19 01:24:17 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 26 10:39:55 2012 +0200"
      },
      "message": "linker: improve loadable segment protection.\n\nUse the functions in linker_phdr.c to load the PT_LOAD segments\nin memory, and toggle their mapping\u0027s writable protection bit\nas needed. In particular:\n\n  - when loading a library, load the segments then unprotected\n    them to allow relocations to work.\n\n  - when relocating the linker of the executable, unprotect\n    the segments loaded by the kernel to make relocations work\n    too.\n\n  - after all relocations are done, re-protect the segments,\n    and apply GNU RELRO protection if needed.\n\n  - just before calling the destructors, undo the GNU RELRO\n    protection.\n\nChange-Id: I50e709f03958204b8d6140c0f51ebe24fe089a1b\n"
    },
    {
      "commit": "63f99f4a4e05353de2e8ba3d7bd4d882d716167a",
      "tree": "a7a3af579dc0f14191c014543d889237e69916f8",
      "parents": [
        "8941cfa17a60133f3896b84f6517aa849bafb050"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 19 00:08:39 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 26 10:39:55 2012 +0200"
      },
      "message": "linker: simplify code for dynamic and ARM exidx sections.\n\nThis moves the code that determines where the .dynamic and .ARM.exidx\nsections are to a single place in soinfo_link_image().\n\nChange-Id: I98adcb440577bed86442349f03f3c629c945efec\n"
    },
    {
      "commit": "8941cfa17a60133f3896b84f6517aa849bafb050",
      "tree": "2d7243b0c0e40a789584b9a09239b55087770e8f",
      "parents": [
        "ff9ff758adf0cf7c4a2df7d75814e41e37301ce2",
        "bea23e59f7145537fd4e600ae67fa92a798872cf"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 26 01:34:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 26 01:34:41 2012 -0700"
      },
      "message": "Merge \"linker: rename load_offset to load_bias.\""
    },
    {
      "commit": "ff9ff758adf0cf7c4a2df7d75814e41e37301ce2",
      "tree": "db6e5bc6003d836ee1314485bf88452e18649a5d",
      "parents": [
        "48d6c8ed2366c65470af0ff1f32a4c0604bf872f",
        "23363ed7503c25ef4024ce0d517f7415c096645d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 26 01:34:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 26 01:34:31 2012 -0700"
      },
      "message": "Merge \"linker: avoid mapping the whole library before load.\""
    },
    {
      "commit": "48d6c8ed2366c65470af0ff1f32a4c0604bf872f",
      "tree": "bee86bc92eed9f9cd4ea8cfb599686930990c79f",
      "parents": [
        "c6025b604753ab090b8d6ef5f15b0613d8d19926",
        "a6545f46784e67edd5dbcd2bb714c60549f9192d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 26 01:34:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 26 01:34:18 2012 -0700"
      },
      "message": "Merge \"linker: Add PAGE_START/OFFSET/END convenience macros\""
    },
    {
      "commit": "c6025b604753ab090b8d6ef5f15b0613d8d19926",
      "tree": "2abf9b04c65bc0d9a65a4580ea9ff06c17e920ea",
      "parents": [
        "0ff08d22f02750a618821cfe25d19a5e0cb20743",
        "c1bd559d5b0fdcc25db2b6ae2705914103b24699"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 26 01:34:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 26 01:34:07 2012 -0700"
      },
      "message": "Merge \"linker: New sources to manage the ELF program header table.\""
    },
    {
      "commit": "0ff08d22f02750a618821cfe25d19a5e0cb20743",
      "tree": "ee319321aafb0b358447d2a5dfa625195d4077c7",
      "parents": [
        "20bc061dc7a03249c90f8765ae757395587ce4f1",
        "5af97ca8514d9fb4175bff3a79abf26889b94530"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 25 14:09:42 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 25 14:09:42 2012 -0700"
      },
      "message": "am 5af97ca8: am c7bab8cb: Merge \"Enable sqrtf() x86 assembly code\"\n\n* commit \u00275af97ca8514d9fb4175bff3a79abf26889b94530\u0027:\n  Enable sqrtf() x86 assembly code\n"
    },
    {
      "commit": "5af97ca8514d9fb4175bff3a79abf26889b94530",
      "tree": "77249db662fa4397d4593e693d1d003155286fb4",
      "parents": [
        "fa136e8ca71cb20956cd1792251869cac8bed257",
        "c7bab8cb8483e7869eabdbd4add7c9e5beeecc80"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 25 14:06:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 25 14:06:06 2012 -0700"
      },
      "message": "am c7bab8cb: Merge \"Enable sqrtf() x86 assembly code\"\n\n* commit \u0027c7bab8cb8483e7869eabdbd4add7c9e5beeecc80\u0027:\n  Enable sqrtf() x86 assembly code\n"
    },
    {
      "commit": "c7bab8cb8483e7869eabdbd4add7c9e5beeecc80",
      "tree": "5cd316fe35b52f637fb7a433e43c27901ab75998",
      "parents": [
        "a5948157fd34acb2b1d1bfaf129901af865ab5fc",
        "29aa0099248b3a7ac4e178e15bdcb2edbce2500a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 25 10:46:41 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 25 10:46:41 2012 -0700"
      },
      "message": "Merge \"Enable sqrtf() x86 assembly code\""
    },
    {
      "commit": "bea23e59f7145537fd4e600ae67fa92a798872cf",
      "tree": "b3e7eb1fccbb6a8e0966eed9ec8e62d245f55980",
      "parents": [
        "23363ed7503c25ef4024ce0d517f7415c096645d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 18 23:38:46 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 25 11:52:40 2012 +0200"
      },
      "message": "linker: rename load_offset to load_bias.\n\nThis patch changes the definition of the \u0027load_offset\u0027 field\nin struct soinfo. The field is renamed because it is not the\nbasic load bias to add to every p_vaddr value read from the ELF\nfile to get the corresponding memory address.\n\nThis also slightly simplifies the relocation code.\n\n+ Fix for proper load_bias computation for relocatable executables.\n\nChange-Id: I72502c75a70751cba324deee7d313ae61f96609e\n"
    },
    {
      "commit": "23363ed7503c25ef4024ce0d517f7415c096645d",
      "tree": "2892f3246f211cf3c5a4d17ecec3194d00294bda",
      "parents": [
        "a6545f46784e67edd5dbcd2bb714c60549f9192d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 18 18:13:49 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 25 11:52:40 2012 +0200"
      },
      "message": "linker: avoid mapping the whole library before load.\n\nThis patch changes the load_library() function in the\ndynamic linker to avoid reserving a huge read-only\naddress-space range just to read the ELF header and\nprogram header (which are typically very small and easily\nfit in the first page).\n\nInstead, we use the functions in linker_phdr.c to only\nload the data that we need in a temporary mmap-allocated\npage of memory, which we release when the function exits.\n\nThis avoids issues when loading very large libraries, or\nsimply debug versions that only need to load a tiny percentage\nof their overall file content in RAM.\n\nChange-Id: Id3a189fad2119a870a1b3d43dd81380c54ea6044\n"
    },
    {
      "commit": "a6545f46784e67edd5dbcd2bb714c60549f9192d",
      "tree": "c085649fb2772c21fa01b0dd750038cb41251073",
      "parents": [
        "c1bd559d5b0fdcc25db2b6ae2705914103b24699"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 18 11:15:54 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 25 11:52:40 2012 +0200"
      },
      "message": "linker: Add PAGE_START/OFFSET/END convenience macros\n\nThis patch adds a few macros related to memory pages to help\nclarify some of the code in linker.c\n\nChange-Id: I36c727132d257b1497398dd0a9e8a5a4505467ca\n"
    },
    {
      "commit": "c1bd559d5b0fdcc25db2b6ae2705914103b24699",
      "tree": "14593885df4f31db54a2c615febf4031cc8ea8d4",
      "parents": [
        "20bc061dc7a03249c90f8765ae757395587ce4f1"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 19 11:21:29 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 25 11:52:40 2012 +0200"
      },
      "message": "linker: New sources to manage the ELF program header table.\n\nThis patch introduces two new source files containing a set of functions\nto manage the program header table in an ELF binary, including the ability\nto load PT_LOAD segments, and apply PT_GNU_RELRO protection.\n\nNote: the files are not used currently, this will appear in a series\n      of future patches that will gradually modify linker.c to use\n      the phdr_table_xxx functions properly.\n\nChange-Id: Ia3d4c1ff5fc3e265d8258b64b492f4e643f51bdc\n"
    },
    {
      "commit": "29aa0099248b3a7ac4e178e15bdcb2edbce2500a",
      "tree": "ca86c9e1e06abc04e5390e91ebd871d0513c14ec",
      "parents": [
        "028ccf5d40dd9a945ea92aa79822c08c6f6aa1d2"
      ],
      "author": {
        "name": "xqian6",
        "email": "xi.qian@intel.com",
        "time": "Mon Jun 25 16:12:06 2012 +0800"
      },
      "committer": {
        "name": "xqian6",
        "email": "xi.qian@intel.com",
        "time": "Mon Jun 25 16:20:09 2012 +0800"
      },
      "message": "Enable sqrtf() x86 assembly code\n\nThis patch can improve the sqrtf() performance.\n\nChange-Id: Ic9d11d6a9ecd9b263f54d4878e13595e136b95ce\n"
    },
    {
      "commit": "20bc061dc7a03249c90f8765ae757395587ce4f1",
      "tree": "41bf1f05ba88f835bd7a47843c4757ed356e4b0c",
      "parents": [
        "63d0ceec75927155947c07bc45cb9fed5e527922"
      ],
      "author": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jun 22 14:52:52 2012 +0400"
      },
      "committer": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jun 22 14:56:01 2012 +0400"
      },
      "message": "Add module base to main executable\u0027s ARM_exidx.\n\nBUG:6697872\n\nChange-Id: I448f4b86397307086231776da38a7af334a75fe5\n"
    },
    {
      "commit": "63d0ceec75927155947c07bc45cb9fed5e527922",
      "tree": "ea40b42ebea8dfa43a40218cfb100e324a8fa221",
      "parents": [
        "214feeba196435d26b4b8ba6ca6959695ebb892c",
        "fa136e8ca71cb20956cd1792251869cac8bed257"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Jun 20 19:00:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 20 19:00:55 2012 -0700"
      },
      "message": "am fa136e8c: am a5948157: Merge \"Define __stack_chk_fail_local.S\"\n\n* commit \u0027fa136e8ca71cb20956cd1792251869cac8bed257\u0027:\n  Define __stack_chk_fail_local.S\n"
    },
    {
      "commit": "fa136e8ca71cb20956cd1792251869cac8bed257",
      "tree": "01be8f0d6d1adb19b19e17c401f2df33f2ab57b7",
      "parents": [
        "effc607e87add0aec14fefb4ac1c00d36559149a",
        "a5948157fd34acb2b1d1bfaf129901af865ab5fc"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Jun 20 18:58:18 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 20 18:58:18 2012 -0700"
      },
      "message": "am a5948157: Merge \"Define __stack_chk_fail_local.S\"\n\n* commit \u0027a5948157fd34acb2b1d1bfaf129901af865ab5fc\u0027:\n  Define __stack_chk_fail_local.S\n"
    },
    {
      "commit": "a5948157fd34acb2b1d1bfaf129901af865ab5fc",
      "tree": "27812988f268a0b66e8e0c7fcfab112bcfb82743",
      "parents": [
        "028ccf5d40dd9a945ea92aa79822c08c6f6aa1d2",
        "6973e3da873c5694d0011734c7c6841a46150cb1"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Jun 20 18:37:47 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 20 18:37:48 2012 -0700"
      },
      "message": "Merge \"Define __stack_chk_fail_local.S\""
    },
    {
      "commit": "6973e3da873c5694d0011734c7c6841a46150cb1",
      "tree": "27812988f268a0b66e8e0c7fcfab112bcfb82743",
      "parents": [
        "028ccf5d40dd9a945ea92aa79822c08c6f6aa1d2"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Jun 20 14:35:51 2012 +0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Thu Jun 21 09:26:33 2012 +0800"
      },
      "message": "Define __stack_chk_fail_local.S\n\nWith -fstack-protector, x86 -m32 needs __stack_chk_fail_local\ndefined in crtbegin_*.o.\n\nInclude __stack_chk_fail_local.S in begin.S otherwise linker\n(which is built w/o crt*) may not link.\n\nChange-Id: Id242fcf3eff157264afe3b04f27288ab7991220a\n"
    },
    {
      "commit": "214feeba196435d26b4b8ba6ca6959695ebb892c",
      "tree": "9ad59307acedf567e16b3aaaccc2e74223ef2682",
      "parents": [
        "823aeb9294870afb1b7c6ce4f196374f0bc9e568",
        "effc607e87add0aec14fefb4ac1c00d36559149a"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 20 08:28:23 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 20 08:28:23 2012 -0700"
      },
      "message": "am effc607e: Reconcile with jb-release\n\n* commit \u0027effc607e87add0aec14fefb4ac1c00d36559149a\u0027:\n"
    },
    {
      "commit": "effc607e87add0aec14fefb4ac1c00d36559149a",
      "tree": "09b387a5f3721cd23603e9ce269bbac1df9b81c5",
      "parents": [
        "63c4179f5951edc2d68700fe75659fbd34febe63",
        "77093f2a8bfad87572d053f3154cb201a4f59dcd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 20 08:25:32 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 20 08:25:32 2012 -0700"
      },
      "message": "Reconcile with jb-release\n\nChange-Id: Ia5de9692e507a605d3b6937ec65da26169a3ea8e\n"
    },
    {
      "commit": "77093f2a8bfad87572d053f3154cb201a4f59dcd",
      "tree": "08a43e1df327ce554c6a36e62cc3c6848ec7895c",
      "parents": [
        "4d0128f13a3ca9f7a0c81b6e69f7e20d28e9e6e3",
        "ff7eae7b08ec84af95325067f8b01fd0697767bc"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Wed Jun 20 06:59:21 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Wed Jun 20 06:59:21 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "823aeb9294870afb1b7c6ce4f196374f0bc9e568",
      "tree": "9ad59307acedf567e16b3aaaccc2e74223ef2682",
      "parents": [
        "f2ba5c9afa750cc5b7cd4737071b73ce1f01f252",
        "166b7dbd4aa143fc22f61c64dae1219a910f1a6e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 19 14:51:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 19 14:51:28 2012 -0700"
      },
      "message": "Merge \"linker: reduce size by nearly 20KB\""
    },
    {
      "commit": "f2ba5c9afa750cc5b7cd4737071b73ce1f01f252",
      "tree": "fc6981e1b86f32f402c30a5286388e2302a98f3b",
      "parents": [
        "ece8f502ed6f2915bd27187cd016d85f4481f6e1",
        "63c4179f5951edc2d68700fe75659fbd34febe63"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jun 19 11:33:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 19 11:33:19 2012 -0700"
      },
      "message": "am 63c4179f: am 4d0128f1: Merge \"Minor tweak to get memory around corrupted heap chunks dumped.\" into jb-dev\n\n* commit \u002763c4179f5951edc2d68700fe75659fbd34febe63\u0027:\n  Minor tweak to get memory around corrupted heap chunks dumped.\n"
    },
    {
      "commit": "63c4179f5951edc2d68700fe75659fbd34febe63",
      "tree": "09b387a5f3721cd23603e9ce269bbac1df9b81c5",
      "parents": [
        "c5cab3452d5ced55474e56497594579108670b51",
        "4d0128f13a3ca9f7a0c81b6e69f7e20d28e9e6e3"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jun 19 11:31:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 19 11:31:14 2012 -0700"
      },
      "message": "am 4d0128f1: Merge \"Minor tweak to get memory around corrupted heap chunks dumped.\" into jb-dev\n\n* commit \u00274d0128f13a3ca9f7a0c81b6e69f7e20d28e9e6e3\u0027:\n  Minor tweak to get memory around corrupted heap chunks dumped.\n"
    },
    {
      "commit": "4d0128f13a3ca9f7a0c81b6e69f7e20d28e9e6e3",
      "tree": "08a43e1df327ce554c6a36e62cc3c6848ec7895c",
      "parents": [
        "b7630f018abc83261acf78e8cf9a88c1df72f7f5",
        "ec2ab73b87bb0c6da24cfc86dbc2d79b9c923da1"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jun 19 11:28:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 19 11:28:15 2012 -0700"
      },
      "message": "Merge \"Minor tweak to get memory around corrupted heap chunks dumped.\" into jb-dev"
    },
    {
      "commit": "ec2ab73b87bb0c6da24cfc86dbc2d79b9c923da1",
      "tree": "ec2466c16de41ca9399ec66187624e8518cdd25f",
      "parents": [
        "e1dd3c287ba836281de0197670018bd9bbfbd62b"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Jun 19 07:11:38 2012 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Jun 19 07:11:38 2012 -0700"
      },
      "message": "Minor tweak to get memory around corrupted heap chunks dumped.\n\nChange-Id: I8f72c5c7e23960b13fc53e2354cd74aca8aac3c0\n"
    },
    {
      "commit": "166b7dbd4aa143fc22f61c64dae1219a910f1a6e",
      "tree": "37e0af894f67975779ac6e7a8d4cdf8ba6e77936",
      "parents": [
        "ece8f502ed6f2915bd27187cd016d85f4481f6e1"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 19 02:02:32 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 19 10:53:11 2012 +0200"
      },
      "message": "linker: reduce size by nearly 20KB\n\nThis patch adds a trivial implementation of snprintf() that calls\nour internal vsnprintf().\n\nInspection of the generated machine code showed that the linker\ncontained a full implementation of stdio\u0027s vfprintf. It was pulled\nin because the pthread implementation uses snprintf() somewhere.\n\nProTip: It\u0027s possible to see why specific objects files are included\nin a final binary by adding the following to your Android.mk, then\nlooking at the content of /tmp/MAP.TXT:\n\n  LOCAL_LDFLAGS +\u003d -Wl,-Map\u003d/tmp/MAP.TXT\n\nChange-Id: I325e71b0cad1d01116a2e00c09e30a80cb716aa3\n"
    },
    {
      "commit": "ece8f502ed6f2915bd27187cd016d85f4481f6e1",
      "tree": "c95b1704f306c3d50d15fdabd1c0bcc55d1cfcf4",
      "parents": [
        "70f6901c3dbe6f09c7fc3ebdb18f715915635d70",
        "420f4939b32dd58677e54181650c60c4d55e3019"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Jun 14 16:13:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 14 16:13:16 2012 -0700"
      },
      "message": "Merge \"Add watchdog.h\""
    },
    {
      "commit": "70f6901c3dbe6f09c7fc3ebdb18f715915635d70",
      "tree": "eb9e00e1e5e9c7a0c36d04cd17478945dce60d97",
      "parents": [
        "8df49ad2467ec2d48f94a925162185c34bf6e68b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 14 13:48:18 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 14 13:57:43 2012 -0700"
      },
      "message": "libc: make atoi, atol, and atoll pure functions\n\nChange-Id: Ib831c079c865929b6c91d42f35e117f2e974808f\n"
    },
    {
      "commit": "8df49ad2467ec2d48f94a925162185c34bf6e68b",
      "tree": "00161cd65c6292eebd000699534b554b2c52be0a",
      "parents": [
        "4442d512c66aa32a26fe2e652e55ad05249ea3da"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 16:57:27 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 14 12:52:42 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add strlcpy / strlcat support\n\nAdd strlcpy / strlcat support to FORTIFY_SOURCE. This allows\nus to do consistency checks on to ensure we don\u0027t overflow buffers\nwhen the compiler is able to tell us the size of the buffer we\u0027re\ndealing with.\n\nUnlike previous changes, this change DOES NOT use the compiler\u0027s\nbuiltin support. Instead, we do everything the compiler would\nnormally do.\n\nChange-Id: I47c099a911382452eafd711f8e9bfe7c2d0a0d22\n"
    },
    {
      "commit": "420f4939b32dd58677e54181650c60c4d55e3019",
      "tree": "3b4d72955ed4c171de0b44862e071b15e6eb8e72",
      "parents": [
        "4442d512c66aa32a26fe2e652e55ad05249ea3da"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Jun 13 19:22:18 2012 -0700"
      },
      "committer": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Wed Jun 13 21:58:08 2012 -0700"
      },
      "message": "Add watchdog.h\n\nChange-Id: Ib12d437151ccfbd634e9f01acd8556c79977ca04\n"
    },
    {
      "commit": "4442d512c66aa32a26fe2e652e55ad05249ea3da",
      "tree": "fee2a4723dad2c6b92f28b4772066b75f98e9704",
      "parents": [
        "a5eaa02f623b14a50f965a7279c2a6ae9f78337f",
        "16084168111cd7d2ac8a6b92e6fa6df5696928a5"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 13 21:45:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 13 21:45:52 2012 -0700"
      },
      "message": "Merge \"linker: small code-cleanup\""
    },
    {
      "commit": "a5eaa02f623b14a50f965a7279c2a6ae9f78337f",
      "tree": "118594368871339c5e3756b999fc1dd6da82b71c",
      "parents": [
        "8c54c56723c9b6761e637c81e34b1bd8ee38cf59",
        "b27631b9aee760034ea4aecc5c052e880292c417"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 16:13:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 13 16:13:32 2012 -0700"
      },
      "message": "Merge \"Don\u0027t mark realloc with __attribute__((malloc))\""
    },
    {
      "commit": "b27631b9aee760034ea4aecc5c052e880292c417",
      "tree": "de164c8c7dda506f635464d2838d99b0a9df78e4",
      "parents": [
        "c2f1d215b1786520fa8c371caa97f062e0bfb513"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 15:43:14 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 15:43:14 2012 -0700"
      },
      "message": "Don\u0027t mark realloc with __attribute__((malloc))\n\nAccording to\nhttp://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html\n\nrealloc should NOT be marked with __attribute__((malloc)). Quoting:\n\n   realloc-like functions do not have this property as the memory\n   pointed to does not have undefined content.\n\nFor reference, __mallocfunc is defined in sys/cdefs.h as:\n\n    #define __mallocfunc  __attribute__((malloc))\n\nChange-Id: I56083542ba92e4608dd7c55fb5596a138eb50cc9\n"
    },
    {
      "commit": "16084168111cd7d2ac8a6b92e6fa6df5696928a5",
      "tree": "2fdb97283d519d1a54a79962509b54af73048130",
      "parents": [
        "ca622f57480f996f1d7b8d8660fba9e6d717db2d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 12 16:25:37 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 13 22:47:20 2012 +0200"
      },
      "message": "linker: small code-cleanup\n\nThis patch adds to make the linker a little bit easier to understand\nby making all functions that acts on a sofino object with a soinfo_\nprefix.\n\nThis is to more easily distinguish functions that operate on global\nstate, and those that operate on individual libraries.\n\nThis should be purely stylistic, i.e. no feature/behaviour change.\n\nChange-Id: Ie510d13d743aa4317644caefa9910b8af7e84f44\n"
    },
    {
      "commit": "8c54c56723c9b6761e637c81e34b1bd8ee38cf59",
      "tree": "1f78c35e957f4d410218e66d9a848bcaa20566b4",
      "parents": [
        "ca622f57480f996f1d7b8d8660fba9e6d717db2d",
        "9b549c39c938f54680f282c21e6885f53254bfb0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 11:03:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 13 11:03:42 2012 -0700"
      },
      "message": "Merge \"FORTIFY_SOURCE: add sprintf / vsprintf support\""
    },
    {
      "commit": "9b549c39c938f54680f282c21e6885f53254bfb0",
      "tree": "8bb4a40d6d9c7f265a58954572097eefa1c2da5e",
      "parents": [
        "c2f1d215b1786520fa8c371caa97f062e0bfb513"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 12 15:59:04 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 09:14:30 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add sprintf / vsprintf support\n\nsprintf FORTIFY_SOURCE protections are not available\non clang.\n\nAlso add various __attribute__s to stdio functions.\n\nChange-Id: I936d1f9e55fe53a68885c4524b7b59e68fed218d\n"
    },
    {
      "commit": "ca622f57480f996f1d7b8d8660fba9e6d717db2d",
      "tree": "3d31f47dfb861bb8fb5aa1f9f6d2231b5185b6ac",
      "parents": [
        "8f88aa7d3823ac079fc783651a64dbe986a8205e",
        "d1a6918508c6b9994c6ddffdfe806175d686c83d"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 12 16:34:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 12 16:34:46 2012 -0700"
      },
      "message": "Merge \"update filter.h / prctl.h / seccomp.h\""
    },
    {
      "commit": "8f88aa7d3823ac079fc783651a64dbe986a8205e",
      "tree": "b035e97c14afeaa3f4264c7d4a5caa9ec14a7156",
      "parents": [
        "c2f1d215b1786520fa8c371caa97f062e0bfb513",
        "c5cab3452d5ced55474e56497594579108670b51"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 12 15:56:29 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 12 15:56:29 2012 -0700"
      },
      "message": "am c5cab345: am 028ccf5d: Merge \"Avoid multiple dns lookups for the same query\"\n\n* commit \u0027c5cab3452d5ced55474e56497594579108670b51\u0027:\n  Avoid multiple dns lookups for the same query\n"
    },
    {
      "commit": "c5cab3452d5ced55474e56497594579108670b51",
      "tree": "aa86ebb93eb3a84c1101a2d28edb58c4addc2e1d",
      "parents": [
        "20afd4e70c2f346d7cd03a7a3049f8de2d176d5c",
        "028ccf5d40dd9a945ea92aa79822c08c6f6aa1d2"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 12 15:52:56 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 12 15:52:56 2012 -0700"
      },
      "message": "am 028ccf5d: Merge \"Avoid multiple dns lookups for the same query\"\n\n* commit \u0027028ccf5d40dd9a945ea92aa79822c08c6f6aa1d2\u0027:\n  Avoid multiple dns lookups for the same query\n"
    },
    {
      "commit": "d1a6918508c6b9994c6ddffdfe806175d686c83d",
      "tree": "a8ead2cbef6f441af57ca8e239651ae61c1873bc",
      "parents": [
        "c2f1d215b1786520fa8c371caa97f062e0bfb513"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 12 15:42:39 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 12 15:46:31 2012 -0700"
      },
      "message": "update filter.h / prctl.h / seccomp.h\n\nPull in an updated version of filter.h / prctl.h / seccomp.h\nfrom the linux kernel.  Pulled from upstream kernel at\n94fa83c424321189ca24fb6cb4c0d224cdedc72d\n\nThis file was generated using the following command:\n\ncd bionic/libc/kernel/\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/seccomp.h\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/filter.h\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/prctl.h\n\nChange-Id: I1ca996541d05b0d5927ab828a6ce49c09877ea01\n"
    },
    {
      "commit": "028ccf5d40dd9a945ea92aa79822c08c6f6aa1d2",
      "tree": "d7d3270fa4d39d6cb336145791aec0e7d9a4530c",
      "parents": [
        "e0961445124b5ff39412da32578e14e0d1f6afd6",
        "a59cfcfd0821f51ee77f13105099f700ccbf9252"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jun 12 15:06:23 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 15:06:24 2012 -0700"
      },
      "message": "Merge \"Avoid multiple dns lookups for the same query\""
    },
    {
      "commit": "c2f1d215b1786520fa8c371caa97f062e0bfb513",
      "tree": "5fb4e8d1f40d5febb9b605d230654d60af8ed731",
      "parents": [
        "f525fb525b19e76ac9438b7fddeaa3312517a092",
        "cffdf6693ffb50d2a1258d955a162bca83038f25"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 12 08:50:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 12 08:50:57 2012 -0700"
      },
      "message": "Merge \"FORTIFY_SOURCE: add snprintf, vsnprintf\""
    },
    {
      "commit": "f525fb525b19e76ac9438b7fddeaa3312517a092",
      "tree": "ae6a60e43c9bf254795ed44af3719fe1c9896ab5",
      "parents": [
        "c9142d4d8e6b3c55b63b5d707d8d1f6f3ea8734c",
        "20afd4e70c2f346d7cd03a7a3049f8de2d176d5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 17:42:44 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 11 17:42:44 2012 -0700"
      },
      "message": "am 20afd4e7: am e0961445: Merge \"Remove the meaningless on Linux if_dl.h header.\"\n\n* commit \u002720afd4e70c2f346d7cd03a7a3049f8de2d176d5c\u0027:\n  Remove the meaningless on Linux if_dl.h header.\n"
    },
    {
      "commit": "c9142d4d8e6b3c55b63b5d707d8d1f6f3ea8734c",
      "tree": "ae6a60e43c9bf254795ed44af3719fe1c9896ab5",
      "parents": [
        "0f5b48ce284850cd500fbb48a9f7a3c68a84e659",
        "571da80c58e13eac4d4fb29d38342879e5dede13"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 17:42:43 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 11 17:42:43 2012 -0700"
      },
      "message": "am 571da80c: am c75491e2: Merge \"Remove an obsolete jamfile.\"\n\n* commit \u0027571da80c58e13eac4d4fb29d38342879e5dede13\u0027:\n  Remove an obsolete jamfile.\n"
    },
    {
      "commit": "20afd4e70c2f346d7cd03a7a3049f8de2d176d5c",
      "tree": "8aeff6389049ff13c1612e1ff1397d6232735926",
      "parents": [
        "571da80c58e13eac4d4fb29d38342879e5dede13",
        "e0961445124b5ff39412da32578e14e0d1f6afd6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 17:41:10 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 11 17:41:10 2012 -0700"
      },
      "message": "am e0961445: Merge \"Remove the meaningless on Linux if_dl.h header.\"\n\n* commit \u0027e0961445124b5ff39412da32578e14e0d1f6afd6\u0027:\n  Remove the meaningless on Linux if_dl.h header.\n"
    },
    {
      "commit": "571da80c58e13eac4d4fb29d38342879e5dede13",
      "tree": "8b5ca67a2704906583f7b61122e4b899ef2fcd4b",
      "parents": [
        "5ff025a50ccd7d30ea39c989d9ed8b1084ded47f",
        "c75491e291586540c213ae088fc75b71fc4d3752"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 17:41:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 11 17:41:04 2012 -0700"
      },
      "message": "am c75491e2: Merge \"Remove an obsolete jamfile.\"\n\n* commit \u0027c75491e291586540c213ae088fc75b71fc4d3752\u0027:\n  Remove an obsolete jamfile.\n"
    },
    {
      "commit": "e0961445124b5ff39412da32578e14e0d1f6afd6",
      "tree": "e1e3e62f226e7bb7192825221cb7192d8fe9ddb2",
      "parents": [
        "c75491e291586540c213ae088fc75b71fc4d3752",
        "c3d45b822cd7d7c359aceba9447a1619b5a2150b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 16:49:57 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 11 16:49:57 2012 -0700"
      },
      "message": "Merge \"Remove the meaningless on Linux if_dl.h header.\""
    },
    {
      "commit": "cffdf6693ffb50d2a1258d955a162bca83038f25",
      "tree": "205f5c66002cd0a5f064081142bf1b54507e9a4e",
      "parents": [
        "85b06f9365ae6776deb9fcf09f450f777ace9e34"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 11 15:50:57 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 11 16:46:16 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add snprintf, vsnprintf\n\nAdd _FORTIFY_SOURCE support for snprintf, vsnprintf\n\nAt this time, we opt out of these protections for clang, as clang\ndoes not implement __builtin_va_arg_pack().\n\nhttp://clang.llvm.org/docs/UsersManual.html#c_unimpl_gcc\n\nChange-Id: I73ebe5ec8dad1dca8898a76d6afb693a25f75375\n"
    },
    {
      "commit": "c75491e291586540c213ae088fc75b71fc4d3752",
      "tree": "9f8c8e41dd9e1d70a9e5526c22168ecffaa0e583",
      "parents": [
        "2b89f1e37df838e466d382fc602728930bad4c68",
        "4c19e4f64f12efc38a878e65509a122921d72e44"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 16:29:46 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 11 16:29:46 2012 -0700"
      },
      "message": "Merge \"Remove an obsolete jamfile.\""
    },
    {
      "commit": "4c19e4f64f12efc38a878e65509a122921d72e44",
      "tree": "9f8c8e41dd9e1d70a9e5526c22168ecffaa0e583",
      "parents": [
        "2b89f1e37df838e466d382fc602728930bad4c68"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 16:17:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 16:17:45 2012 -0700"
      },
      "message": "Remove an obsolete jamfile.\n\nWas bionic ever built with jam? Weird!\n\nChange-Id: Iea9a7af8bf46ee8319963e642da48e3bb49f6c60\n"
    },
    {
      "commit": "0f5b48ce284850cd500fbb48a9f7a3c68a84e659",
      "tree": "cd2aed2eef698c5ea3367afa4d2f82628aadf7a0",
      "parents": [
        "7c5c68f5c7b87dfb309f006673fb809c7333dcf7",
        "85b06f9365ae6776deb9fcf09f450f777ace9e34"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 11 16:11:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 16:11:20 2012 -0700"
      },
      "message": "Merge \"inet_ntop: pass the size of tmp to snprintf()\""
    },
    {
      "commit": "85b06f9365ae6776deb9fcf09f450f777ace9e34",
      "tree": "29a0bf8560a5733ff8979af6d8dfcfa24def7a1a",
      "parents": [
        "76656afc6dd069fcfda5768e6e54bb85e4e99942"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 11 14:29:30 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 11 16:00:52 2012 -0700"
      },
      "message": "inet_ntop: pass the size of tmp to snprintf()\n\nFix runtime error when snprintf() FORTIFY_SOURCE protections are\napplied. The size passed to snprintf() is larger than the tmp\nbuffer size, which results in a runtime assertion failure.\n\nEven though the size passed to snprintf is larger than the buffer,\nthere\u0027s no danger of overwriting the buffer because of the format\nstring passed to snprintf.\n\nChange-Id: I35f0217d25f3b9c6d04c5a76c3238759c235545a\n"
    },
    {
      "commit": "c3d45b822cd7d7c359aceba9447a1619b5a2150b",
      "tree": "1afa490f38c1cf8437193de5511757275d683fc0",
      "parents": [
        "2b89f1e37df838e466d382fc602728930bad4c68"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 15:01:10 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 15:13:37 2012 -0700"
      },
      "message": "Remove the meaningless on Linux if_dl.h header.\n\nThis was misleading \u0027configure\u0027 into thinking we actually support AF_LINK,\nbut we\u0027re Linux, so we don\u0027t, and we never implemented the functions we\ndeclared here either.\n\nReported to AOSP by Jun-ya Kato.\n\n(cherry-pick of 5056f1fad1187cd67729bb04ba72397d78256f03.)\n\nChange-Id: Ic67f674d2221497c8166994812bb5fc7f0831066\n"
    },
    {
      "commit": "7c5c68f5c7b87dfb309f006673fb809c7333dcf7",
      "tree": "f5b70a9d9b78ce5a4419cc77d3fdd27217f54f28",
      "parents": [
        "631498de43cb958f32c864cb9cdb2e99dadc19e1",
        "5056f1fad1187cd67729bb04ba72397d78256f03"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 15:09:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 15:09:57 2012 -0700"
      },
      "message": "Merge \"Remove the meaningless on Linux if_dl.h header.\""
    },
    {
      "commit": "5056f1fad1187cd67729bb04ba72397d78256f03",
      "tree": "eb7460d075a62b4257e475ec938b6f93bbd9e92a",
      "parents": [
        "f41855949d5f19e0fc1f8873278ae21c52dd5676"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 15:01:10 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 15:01:10 2012 -0700"
      },
      "message": "Remove the meaningless on Linux if_dl.h header.\n\nThis was misleading \u0027configure\u0027 into thinking we actually support AF_LINK,\nbut we\u0027re Linux, so we don\u0027t, and we never implemented the functions we\ndeclared here either.\n\nReported to AOSP by Jun-ya Kato.\n\nChange-Id: I111f9887f3812469b411b9cf5124d9dd624f19f7\n"
    },
    {
      "commit": "631498de43cb958f32c864cb9cdb2e99dadc19e1",
      "tree": "a8176e5bf49d93ecf6a8bb09db05faadcd4fb046",
      "parents": [
        "fd49579f3a04125b23336c981739dca6c39712bb",
        "524c87c61c1d39dd60aaa8ae01ec3528ce212288"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 12:17:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 12:17:12 2012 -0700"
      },
      "message": "Merge \"Added event logging for some spoofed DNS queries.\""
    },
    {
      "commit": "fd49579f3a04125b23336c981739dca6c39712bb",
      "tree": "4ddfedaecd744900e449d68972157afb99f27908",
      "parents": [
        "8f2887be9376c204f574273abfec849823ac835e",
        "009f38478e6a1c47aa355b0aed80b69ba91b9c61"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 11:50:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 11:50:03 2012 -0700"
      },
      "message": "Merge \"Added actual event logging calls to the FORTIFY_SOURCE methods.\""
    },
    {
      "commit": "524c87c61c1d39dd60aaa8ae01ec3528ce212288",
      "tree": "f9721ed559801e4e404e94a14f59ea758f77e85c",
      "parents": [
        "76656afc6dd069fcfda5768e6e54bb85e4e99942"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 21:06:33 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 11:44:48 2012 -0700"
      },
      "message": "Added event logging for some spoofed DNS queries.\n\nChange-Id: I40909306e8cf922f1dd5a5685db89f732a709794\n"
    },
    {
      "commit": "009f38478e6a1c47aa355b0aed80b69ba91b9c61",
      "tree": "4ddfedaecd744900e449d68972157afb99f27908",
      "parents": [
        "76656afc6dd069fcfda5768e6e54bb85e4e99942"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 14:39:11 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 11:30:56 2012 -0700"
      },
      "message": "Added actual event logging calls to the FORTIFY_SOURCE methods.\n\nChange-Id: I3bf4fa8678c33187cb8ce4b75e666ddcd24403ab\n"
    },
    {
      "commit": "8f2887be9376c204f574273abfec849823ac835e",
      "tree": "8fc474895f6bffba90a06989e9a168fbaaaff99a",
      "parents": [
        "76656afc6dd069fcfda5768e6e54bb85e4e99942",
        "5ff025a50ccd7d30ea39c989d9ed8b1084ded47f"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 11 09:23:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 11 09:23:11 2012 -0700"
      },
      "message": "am 5ff025a5: Reconcile with jb-release\n\n* commit \u00275ff025a50ccd7d30ea39c989d9ed8b1084ded47f\u0027:\n"
    },
    {
      "commit": "5ff025a50ccd7d30ea39c989d9ed8b1084ded47f",
      "tree": "52277d831c864c127d99652874080db6274f060b",
      "parents": [
        "e4db460a54e4f024b83a7df9a3f9920d695da9f3",
        "ff7eae7b08ec84af95325067f8b01fd0697767bc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 11 09:20:36 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 11 09:20:36 2012 -0700"
      },
      "message": "Reconcile with jb-release\n\nChange-Id: I7cbfbab55783f245c0854543843c2052c4c2e932\n"
    },
    {
      "commit": "ff7eae7b08ec84af95325067f8b01fd0697767bc",
      "tree": "9abe9b2a8f018b9108d6a55862912d8513a67473",
      "parents": [
        "b7630f018abc83261acf78e8cf9a88c1df72f7f5",
        "db2e7a4cb6ff6e2b6a61f5c708f29235bdd8daa6"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Mon Jun 11 06:59:25 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Mon Jun 11 06:59:25 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "76656afc6dd069fcfda5768e6e54bb85e4e99942",
      "tree": "8fc474895f6bffba90a06989e9a168fbaaaff99a",
      "parents": [
        "f41855949d5f19e0fc1f8873278ae21c52dd5676"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 16:30:02 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 20:18:19 2012 -0700"
      },
      "message": "_FORTIFY_SOURCE: check for integer overflows\n\nEnsure that strcat / strncat check for integer overflows\nwhen computing the length of the resulting string.\n\nChange-Id: Ib806ad33a0d3b50876f384bc17787a28f0dddc37\n"
    },
    {
      "commit": "f41855949d5f19e0fc1f8873278ae21c52dd5676",
      "tree": "adec664ec6957a7263b04a6bbc94cc21cc24b14c",
      "parents": [
        "ec8addcc8af1dc2a1ae606af8a16362bf5471a63",
        "e4db460a54e4f024b83a7df9a3f9920d695da9f3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 08 15:33:31 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 15:33:31 2012 -0700"
      },
      "message": "am e4db460a: am b7630f01: Use new debuggerd protocol.\n\n* commit \u0027e4db460a54e4f024b83a7df9a3f9920d695da9f3\u0027:\n  Use new debuggerd protocol.\n"
    },
    {
      "commit": "e4db460a54e4f024b83a7df9a3f9920d695da9f3",
      "tree": "52277d831c864c127d99652874080db6274f060b",
      "parents": [
        "d06a73bcb330e1a560373158be9009daef10a046",
        "b7630f018abc83261acf78e8cf9a88c1df72f7f5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 08 15:30:39 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 15:30:39 2012 -0700"
      },
      "message": "am b7630f01: Use new debuggerd protocol.\n\n* commit \u0027b7630f018abc83261acf78e8cf9a88c1df72f7f5\u0027:\n  Use new debuggerd protocol.\n"
    },
    {
      "commit": "ec8addcc8af1dc2a1ae606af8a16362bf5471a63",
      "tree": "7baad32412d6632ba99d9d800509227575905ce5",
      "parents": [
        "7e5993bec7a2856f727c7029cb4e0b5b4a7436d4",
        "8b11c4cec21dc8eedd153866ce738614cfae57e6"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 12:17:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 12:17:11 2012 -0700"
      },
      "message": "Merge \"Adding event logging to libc.\""
    },
    {
      "commit": "8b11c4cec21dc8eedd153866ce738614cfae57e6",
      "tree": "ee313cc132aeda193792e290d1e4749f8f2e1712",
      "parents": [
        "158ad015c2eb8f0a7f0e91db706ca363e634f407"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu Jun 07 17:45:06 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 12:14:48 2012 -0700"
      },
      "message": "Adding event logging to libc.\n\nI\u0027ve basically just copied the relevant bits out of liblog and\nEventLog.cpp. While this will let us do the uid logging we want\nto address the concerns in 245c07027f78565858dd489eb0d94c3d48743e9d\nit doesn\u0027t give us much else.\n\nChange-Id: Icac6ff20bc0a3ade5927f6f76fedffe1ae6f8522\n"
    },
    {
      "commit": "7e5993bec7a2856f727c7029cb4e0b5b4a7436d4",
      "tree": "bb2a465ab0028b533d5e1d6ff1b1138b79bd8bac",
      "parents": [
        "1a6b0bb3a6e7d19c45c446ba22f1748a98ecfad6",
        "71a18dd435e96564539b5af71b8ea5093a2109a1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:30:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 07 14:30:20 2012 -0700"
      },
      "message": "Merge \"_FORTIFY_SOURCE: add memset / bzero support\""
    },
    {
      "commit": "71a18dd435e96564539b5af71b8ea5093a2109a1",
      "tree": "fd59c2a7cc23b663d090b0b8843a5d19c97df7d0",
      "parents": [
        "7d11009a970732ea18f8a0599d63c94eab9ec3f0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:01:26 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:19:52 2012 -0700"
      },
      "message": "_FORTIFY_SOURCE: add memset / bzero support\n\nAdd _FORTIFY_SOURCE support for the following functions:\n\n* memset\n* bzero\n\nMove the __BIONIC_FORTIFY_INLINE definition to cdefs.h so it\ncan be used from multiple header files.\n\nChange-Id: Iead4d5e35de6ec97786d58ee12573f9b11135bb7\n"
    },
    {
      "commit": "1a6b0bb3a6e7d19c45c446ba22f1748a98ecfad6",
      "tree": "be34442cf6aad2f7b5bc8dcb1e025de2d03769e8",
      "parents": [
        "7d11009a970732ea18f8a0599d63c94eab9ec3f0",
        "f186a1819a4489c8d73485042670a3002742b683"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 07 11:43:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 07 11:43:47 2012 -0700"
      },
      "message": "Merge \"Support non-zero p_vaddr in first PT_LOAD segment\""
    },
    {
      "commit": "7d11009a970732ea18f8a0599d63c94eab9ec3f0",
      "tree": "966a2f02c4489d64428978b9f771c9d2edcef512",
      "parents": [
        "459049719cce0f5b1d595c2a9fa50e3a75550b2b",
        "d06a73bcb330e1a560373158be9009daef10a046"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 07 07:51:59 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 07 07:51:59 2012 -0700"
      },
      "message": "am d06a73bc: Reconcile with jb-release\n\n* commit \u0027d06a73bcb330e1a560373158be9009daef10a046\u0027:\n"
    },
    {
      "commit": "d06a73bcb330e1a560373158be9009daef10a046",
      "tree": "7f8bec490816965d4e4548c9864b7df53d553bb3",
      "parents": [
        "d0c250271c983c3de282ff02bd2528e74ad8b5f1",
        "db2e7a4cb6ff6e2b6a61f5c708f29235bdd8daa6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 07 07:48:47 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 07 07:48:47 2012 -0700"
      },
      "message": "Reconcile with jb-release\n\nChange-Id: I2c8264a9a4e3299bca7fc01d67063993b6b1b886\n"
    },
    {
      "commit": "b7630f018abc83261acf78e8cf9a88c1df72f7f5",
      "tree": "9abe9b2a8f018b9108d6a55862912d8513a67473",
      "parents": [
        "e1dd3c287ba836281de0197670018bd9bbfbd62b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 06 18:37:48 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 06 18:37:48 2012 -0700"
      },
      "message": "Use new debuggerd protocol.\n\nBug: 6615693\nChange-Id: Ibfddc0de3fa2a882f7d0238ab797e5b29296b54b\n"
    },
    {
      "commit": "459049719cce0f5b1d595c2a9fa50e3a75550b2b",
      "tree": "966a2f02c4489d64428978b9f771c9d2edcef512",
      "parents": [
        "158ad015c2eb8f0a7f0e91db706ca363e634f407",
        "d0c250271c983c3de282ff02bd2528e74ad8b5f1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 13:50:29 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 13:50:29 2012 -0700"
      },
      "message": "am d0c25027: am 2b89f1e3: Merge \"Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\"\n\n* commit \u0027d0c250271c983c3de282ff02bd2528e74ad8b5f1\u0027:\n  Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\n"
    },
    {
      "commit": "d0c250271c983c3de282ff02bd2528e74ad8b5f1",
      "tree": "7f8bec490816965d4e4548c9864b7df53d553bb3",
      "parents": [
        "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc",
        "2b89f1e37df838e466d382fc602728930bad4c68"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 13:48:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 13:48:07 2012 -0700"
      },
      "message": "am 2b89f1e3: Merge \"Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\"\n\n* commit \u00272b89f1e37df838e466d382fc602728930bad4c68\u0027:\n  Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\n"
    },
    {
      "commit": "2b89f1e37df838e466d382fc602728930bad4c68",
      "tree": "e46ef556b41c1462c43c4ad506659735e69f7f43",
      "parents": [
        "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d",
        "a985076bfe8c89f932fe33be45b887405c4fe7e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 13:32:19 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 06 13:32:19 2012 -0700"
      },
      "message": "Merge \"Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\""
    },
    {
      "commit": "a985076bfe8c89f932fe33be45b887405c4fe7e3",
      "tree": "e46ef556b41c1462c43c4ad506659735e69f7f43",
      "parents": [
        "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 12:04:38 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 12:04:38 2012 -0700"
      },
      "message": "Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\n\nBug: http://code.google.com/p/enh/issues/detail?id\u003d33\nChange-Id: I679b4cd888d362031042284e8edf01c5273a92aa\n"
    },
    {
      "commit": "158ad015c2eb8f0a7f0e91db706ca363e634f407",
      "tree": "47281e42bc28337e4bc2a322ceea88c4485778e6",
      "parents": [
        "204c6e5ff337cc3be2478172c58de9f4df80b7bd",
        "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 11:37:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 11:37:25 2012 -0700"
      },
      "message": "am 3069270d: am c2bba24d: Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\"\n\n* commit \u00273069270d8641c7bb57aa308d8f90b4d2dcbf66fc\u0027:\n  Give the timer_create SIGEV_THREAD helper threads sensible names.\n"
    },
    {
      "commit": "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc",
      "tree": "4986b35e70c1586a78148c88f15af55aa1a25e41",
      "parents": [
        "252a5c854a08e89fc7337ea679220161fe4ea98f",
        "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 11:35:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 11:35:32 2012 -0700"
      },
      "message": "am c2bba24d: Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\"\n\n* commit \u0027c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d\u0027:\n  Give the timer_create SIGEV_THREAD helper threads sensible names.\n"
    },
    {
      "commit": "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d",
      "tree": "b463bd464e0f4864f444d71639f4b9b9a1149108",
      "parents": [
        "c7882ab2a99a74c8f772ab03fdfd9a3b53515e46",
        "470631ed79538ce912edb94505dee3e24af8db89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:44:31 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 06 10:44:32 2012 -0700"
      },
      "message": "Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\""
    },
    {
      "commit": "470631ed79538ce912edb94505dee3e24af8db89",
      "tree": "b463bd464e0f4864f444d71639f4b9b9a1149108",
      "parents": [
        "c7882ab2a99a74c8f772ab03fdfd9a3b53515e46"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:32:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:32:56 2012 -0700"
      },
      "message": "Give the timer_create SIGEV_THREAD helper threads sensible names.\n\nBug: 6609676\nChange-Id: I286b197c75beee4d9930b0973f2d7dd47c14e91c\n"
    },
    {
      "commit": "204c6e5ff337cc3be2478172c58de9f4df80b7bd",
      "tree": "68431401132bae2b980f682e219940b62ade8bb5",
      "parents": [
        "0a2301598c207fd1b50015984942fee5e8511593",
        "9d40326830c2bd407427889c554adeb915ee6b4a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 06 08:54:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 06 08:54:22 2012 -0700"
      },
      "message": "Merge \"arm: rewrite crtbegin* as C files.\""
    },
    {
      "commit": "0a2301598c207fd1b50015984942fee5e8511593",
      "tree": "161496d8ec411c14f7f82990e82e970c7e328a2a",
      "parents": [
        "31431f454a9d3d3dde46de0e3c39cc409a39c436"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 04 15:20:25 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 05 15:44:31 2012 -0700"
      },
      "message": "libc: implement some FORTIFY_SOURCE functions\n\nAdd initial support for -D_FORTIFY_SOURCE to bionic for the\nfollowing functions:\n\n* memcpy\n* memmove\n* strcpy\n* strcat\n* strncpy\n* strncat\n\nThis change adds a new version of the above functions which passes\nthe size of the destination buffer to __builtin___*_chk.\n\nIf the compiler can determine, at compile time, that the destination\nbuffer is large enough, or the destination buffer can point to an object\nof unknown size, then the check call is bypassed.\n\nIf the compiler can\u0027t make a compile time decision, then it calls\nthe __*_chk() function, which does a runtime buffer size check\n\nThese options are only enabled if the code is compiled with\n-D_FORTIFY_SOURCE\u003d1 or 2, and only when optimizations are enabled.\n\nPlease see\n* http://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html\n* http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html\n\nfor additional details on FORTIFY_SOURCE.\n\nTesting: Compiled the entire Android tree with -D_FORTIFY_SOURCE\u003d1,\nand verified that everything appears to be working properly.\nAlso created a test buffer overflow, and verified that it was\ncaught by this change.\n\nChange-Id: I4fddb445bafe92b16845b22458d72e6dedd24fbc\n"
    },
    {
      "commit": "f186a1819a4489c8d73485042670a3002742b683",
      "tree": "aaefa1f83fcb5357ab0d4535a2400a3f27fb1cdb",
      "parents": [
        "31431f454a9d3d3dde46de0e3c39cc409a39c436"
      ],
      "author": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Thu May 31 20:20:36 2012 +0900"
      },
      "committer": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Mon Jun 04 07:44:10 2012 -0700"
      },
      "message": "Support non-zero p_vaddr in first PT_LOAD segment\n\nBefore changing mmap() permission to PROT_NONE in alloc_mem_region(),\nsuch libraries once worked with a bug that uses mmap\u0027ed region outside of\nmemory region allocated by alloc_mem_region().  This possibly incurs\nSIGSEGV because it can overwrite memory region of previously loaded\nlibrary, but it sometimes worked, depending on loading order.\n\nAfter PROT_NONE, this caused SIGSEGV earlier during calculation of\nsi-\u003ephdr in load_library(), but this was fixed by:\n\n    75917c84d16c35b8fceff6977fa717a3de9ef65d  Use mmap to read an ...\n\nNow the behaviour is the same as before applying PROT_NONE in\nalloc_mem_region().\n\nThis CL fixed the original issue, supporting shared libraries that have\nnon-zero p_vaddr in first (\u003d with lowest p_vaddr) PT_LOAD segment.\n\nBug: 6561258\nChange-Id: Ib6176dd3e44c4d99a340eb1cbd16fb037586b0bc\n"
    },
    {
      "commit": "db2e7a4cb6ff6e2b6a61f5c708f29235bdd8daa6",
      "tree": "a5138cb21c8de6be4ea4be61e44f95fb8bcb776e",
      "parents": [
        "e1dd3c287ba836281de0197670018bd9bbfbd62b",
        "e1d591540ec9e04cb30687fb2186eb100ae88f5c"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Sun Jun 03 05:59:30 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Sun Jun 03 05:59:30 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "31431f454a9d3d3dde46de0e3c39cc409a39c436",
      "tree": "6323e46ca9ba03d26b4dceb1acf9c3b9dc0675cf",
      "parents": [
        "143ad4cf31832537102ae8df7ad7360071b806af",
        "252a5c854a08e89fc7337ea679220161fe4ea98f"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:35:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 02 08:35:07 2012 -0700"
      },
      "message": "am 252a5c85: resolved conflicts for merge of e1dd3c28 to jb-dev-plus-aosp\n\n* commit \u0027252a5c854a08e89fc7337ea679220161fe4ea98f\u0027:\n  bionic: import heaptracker as chk_malloc\n"
    },
    {
      "commit": "143ad4cf31832537102ae8df7ad7360071b806af",
      "tree": "c8a9aae53d1972fdfb4e3bc2a2e9bb2004dfe5f5",
      "parents": [
        "857fc9eab912fbb3f27913c3582ed2268420bce9",
        "f0ddaa2fac00ac20059c0b2c142da9de2838a7b6"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:20:09 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 02 08:20:09 2012 -0700"
      },
      "message": "am f0ddaa2f: am 7d2e24eb: bionic: introduce libc.debug.malloc.program\n\n* commit \u0027f0ddaa2fac00ac20059c0b2c142da9de2838a7b6\u0027:\n  bionic: introduce libc.debug.malloc.program\n"
    },
    {
      "commit": "252a5c854a08e89fc7337ea679220161fe4ea98f",
      "tree": "8e0e154a5c1c94613138ba8cee0b77b8e34d0a49",
      "parents": [
        "f0ddaa2fac00ac20059c0b2c142da9de2838a7b6",
        "e1dd3c287ba836281de0197670018bd9bbfbd62b"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:14:36 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:14:36 2012 -0700"
      },
      "message": "resolved conflicts for merge of e1dd3c28 to jb-dev-plus-aosp\n\nChange-Id: I58b9c13d20771aa39b703ec05cbff8aeaad38fe8\n"
    },
    {
      "commit": "f0ddaa2fac00ac20059c0b2c142da9de2838a7b6",
      "tree": "1e17b7a4afcfffe039a39875b468b4dcc4fb919b",
      "parents": [
        "5a095ef28716b54f86d9c1727b9a2493ba775255",
        "7d2e24eb167b6257f7935c7bd2023a708704ca1a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Jun 01 19:03:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 01 19:03:06 2012 -0700"
      },
      "message": "am 7d2e24eb: bionic: introduce libc.debug.malloc.program\n\n* commit \u00277d2e24eb167b6257f7935c7bd2023a708704ca1a\u0027:\n  bionic: introduce libc.debug.malloc.program\n"
    },
    {
      "commit": "e1dd3c287ba836281de0197670018bd9bbfbd62b",
      "tree": "a5138cb21c8de6be4ea4be61e44f95fb8bcb776e",
      "parents": [
        "7d2e24eb167b6257f7935c7bd2023a708704ca1a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 29 14:22:42 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Jun 01 15:54:34 2012 -0700"
      },
      "message": "bionic: import heaptracker as chk_malloc\n\nThis patch is a rewrite of libc.debug.malloc \u003d 10 (chk_malloc).  It provides\nthe same features as the original (poison freed memory, detect heap overruns\nand underruns), except that it provides more debugging information whenever it\ndetects a problem.\n\nIn addition to the original features, the new chk_malloc() implementation\ndetects multiple frees within a given range of the last N allocations, N being\nconfigurable via the system property libc.debug.malloc.backlog.\n\nFinally, this patch keeps track of all outstanding memory allocations.  On\nprogram exit, we walk that list and report each outstanding allocation.\n\n(There is support (not enabled) for a scanner thread periodically walks over\nthe list of outstanding allocations as well as the backlog of recently-freed\nallocations, checking for heap-usage errors.)\n\nFeature overview:\n\n  1) memory leaks\n  2) multiple frees\n  3) use after free\n  4) overrun\n\nImplementation:\n\n-- for each allocation, there is a:\n  1) stack trace at the time the allocation is made\n  2) if the memory is freed, there is also a stack trace at the point\n  3) a front and rear guard (fence)\n  4) the stack traces are kept together with the allocation\n\n-- the following lists and maintained\n\n  1) all outstanding memory allocations\n  3) a backlog of allocations what are freed; when you call free(), instead of\n     actually freed, the allocation is moved to this backlog;\n  4) when the backlog of allocations gets full, the oldest entry gets evicted\n     from it; at that point, the allocation is checked for overruns or\n     use-after-free errors, and then actually freed.\n  5) when the program exits, the list of outstanding allocations and the\n     backlog are inspected for errors, then freed;\n\nTo use this, set the following system properties before running the process or\nprocesses you want to inspect:\n\nlibc.malloc.debug.backlog # defaults to 100\nlibc.malloc.debug 10\n\nWhen a problem is detected, you will see the following on logcat for a multiple\nfree:\n\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 BYTES MULTIPLY FREED!\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 4009647c  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 FIRST FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096490  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 NOW BEING FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c6ac  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964a0  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a heap overrun and underrun:\n\nE/libc    ( 7233): +++ REAR GUARD MISMATCH [10, 11)\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 HAS A CORRUPTED REAR GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096438  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096462  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 HAS A CORRUPTED FRONT GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964ba  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964e4  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a memory leak:\n\nE/libc    ( 7233): +++ THERE ARE 1 LEAKED ALLOCATIONS\nE/libc    ( 7233): +++ DELETING 4096 BYTES OF LEAKED MEMORY AT 0x404b95e8 (1 REMAINING)\nE/libc    ( 7233): +++ ALLOCATION 0x404b95e8 SIZE 4096 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 0001bc94  /system/lib/libc.so\nE/libc    ( 7233):      #04  pc 0001edf6  /system/lib/libc.so\nE/libc    ( 7233):      #05  pc 0001b80a  /system/lib/libc.so\nE/libc    ( 7233):      #06  pc 0001c086  /system/lib/libc.so\nE/libc    ( 7233):      #07  pc 40096402  /system/bin/malloctest\nE/libc    ( 7233):      #08  pc 00016f24  /system/lib/libc.so\n\nChange-Id: Ic440e9d05a01e2ea86b25e8998714e88bc2d16e0\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "9d40326830c2bd407427889c554adeb915ee6b4a",
      "tree": "17c901c0eb9768711be1c299178cbd891624281b",
      "parents": [
        "857fc9eab912fbb3f27913c3582ed2268420bce9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu May 31 11:40:10 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 01 14:41:27 2012 -0700"
      },
      "message": "arm: rewrite crtbegin* as C files.\n\nRewrite\n crtbegin.S     -\u003e crtbegin.c\n crtbegin_so.S  -\u003e crtbegin_so.c\n\nThis change allows us to generate PIC code without relying\non text relocations.\n\nAs a consequence of this rewrite, also rewrite\n  __dso_handle.S    -\u003e __dso_handle.c\n  __dso_handle_so.S -\u003e __dso_handle_so.c\n  atexit.S          -\u003e atexit.c\n\nIn crtbegin.c _start, place the __PREINIT_ARRAY__, __INIT_ARRAY__,\n__FINI_ARRAY__, and __CTOR_LIST__ variables onto the stack, instead of\npassing a pointer to the text section of the binary.\n\nThis change appears sorta wonky, as I attempted to preserve,\nas much as possible, the structure of the original assembly.\nAs a result, you have C files including other C files, and other\nprogramming uglyness.\n\nResult: This change reduces the number of files with text-relocations\nfrom 315 to 19 on my Android build.\n\nBefore:\n  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l\n  315\n\nAfter:\n  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l\n  19\n\nChange-Id: Ib9f98107c0eeabcb606e1ddc7ed7fc4eba01c9c4\n"
    },
    {
      "commit": "e1d591540ec9e04cb30687fb2186eb100ae88f5c",
      "tree": "f0a77c986e09fdcae8698a72e6e0ce21b2b4ee6d",
      "parents": [
        "03539a36b634bdfa61c06277cf25e0ca8e3105ba",
        "2481468f2232b1d9670657e0148c434c3359ce19"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Thu May 31 06:59:25 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Thu May 31 06:59:25 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "7d2e24eb167b6257f7935c7bd2023a708704ca1a",
      "tree": "827446ee24c7175462c76278a56db005233bbcaf",
      "parents": [
        "03539a36b634bdfa61c06277cf25e0ca8e3105ba"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 29 16:46:17 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed May 30 20:03:47 2012 -0700"
      },
      "message": "bionic: introduce libc.debug.malloc.program\n\nlibc.debug.malloc.program  provides an additional level of control over which\nprocesses to enable libc.debug.malloc functionality for.  The string value of\nlibc.debug.malloc.program is matched against the program name; if the value of\nlibc.debug.malloc.program is a substring of the program name, then malloc debug\nis applied to that program at whatever level libc.debug.malloc specifies.\n\nIf lib.debug.malloc.program is not specified, then libc.debug.malloc has the\nsame effect as before.\n\nFor example, to enable libc.deubug.malloc \u003d 10 only to the mediaserver, do the\nfollowing:\n\n   adb root # necessary for setprop\n   adb setprop libc.debug.malloc.program mediaserver\n   adb setprop libc.debug.malloc 10\n   adb kill -9 $(pid mediaserver)\n\nChange-Id: I6f01c12f033c8e2e015d73025369d7f1685ba200\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "857fc9eab912fbb3f27913c3582ed2268420bce9",
      "tree": "b3afc458526e73c6dba03f871b845798b4c7374f",
      "parents": [
        "207d7673e503508e644a4bd0a0acec4a6dc34a5e",
        "83a73d1afe972014f6c8ff2520fe6d3357421f87"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 13:29:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 30 13:29:58 2012 -0700"
      },
      "message": "Merge \"crtbegin: eliminate duplicate code\""
    },
    {
      "commit": "83a73d1afe972014f6c8ff2520fe6d3357421f87",
      "tree": "f7aea2d4044d20ff5236f53e0988d296e3ea8bd8",
      "parents": [
        "1ebb243d1ad7b82887b6b09c972f57f4c820a9f1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 11:45:12 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 11:45:12 2012 -0700"
      },
      "message": "crtbegin: eliminate duplicate code\n\ncrtbegin_dynamic and crtbegin_static are essentially identical,\nminus a few trivial differences (comments and whitespace).\n\nEliminate duplicates.\n\nChange-Id: Ic9fae6bc9695004974493b53bfc07cd3bb904480\n"
    },
    {
      "commit": "207d7673e503508e644a4bd0a0acec4a6dc34a5e",
      "tree": "f357b4afd514de049204ef0ab3998e89bf3ff288",
      "parents": [
        "1ebb243d1ad7b82887b6b09c972f57f4c820a9f1",
        "5a095ef28716b54f86d9c1727b9a2493ba775255"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed May 30 11:11:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 30 11:11:33 2012 -0700"
      },
      "message": "am 5a095ef2: am 03539a36: Merge \"Ensure that the port number and TXID are properly randomized.\" into jb-dev\n\n* commit \u00275a095ef28716b54f86d9c1727b9a2493ba775255\u0027:\n  Ensure that the port number and TXID are properly randomized.\n"
    },
    {
      "commit": "5a095ef28716b54f86d9c1727b9a2493ba775255",
      "tree": "da09ea4a54c141cba195426f0d723d51edb27b80",
      "parents": [
        "cb9ba3c88a97f34784559a55317ff5970d4c4dba",
        "03539a36b634bdfa61c06277cf25e0ca8e3105ba"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed May 30 11:09:05 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 30 11:09:05 2012 -0700"
      },
      "message": "am 03539a36: Merge \"Ensure that the port number and TXID are properly randomized.\" into jb-dev\n\n* commit \u002703539a36b634bdfa61c06277cf25e0ca8e3105ba\u0027:\n  Ensure that the port number and TXID are properly randomized.\n"
    }
  ],
  "next": "03539a36b634bdfa61c06277cf25e0ca8e3105ba"
}
