)]}'
{
  "log": [
    {
      "commit": "326ea5413d18ea019cd1bda415ce428f7bdcafd2",
      "tree": "630469ff443d522e356418bfda081452d28606f6",
      "parents": [
        "db79e827ebcb077ebaa6d6c96915c5bffba9a0ca"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Dec 04 13:55:19 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Dec 04 15:27:30 2012 -0800"
      },
      "message": "clean up FORTIFY_SOURCE handling.\n\nAvoid duplicating huge chunks of code.\n\nChange-Id: Id6145cdfce781c5ffba2abaaa79681d25a7ab28f\n"
    },
    {
      "commit": "049e58369c37fdeacd0380a6bf1e078d9baf819f",
      "tree": "039599b75477a0759c69af2295e3dd20f293caff",
      "parents": [
        "16c61f088524756ef0fa1b030719f6745eaef2db"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 30 15:15:58 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 30 15:19:15 2012 -0800"
      },
      "message": "FORTIFY_SOURCE: fortify strchr\n\nDetect when strchr reads off the end of a buffer.\n\nChange-Id: I0e952eedcff5c36d646a9c3bc4e1337b959224f2\n"
    },
    {
      "commit": "4688279db5dcc4004941e7f133c4a1c3617d842c",
      "tree": "db614aaf2e0a02cef4b5f643fa91e9cbcfd7d5ff",
      "parents": [
        "1c861728e5c8dda7589e6595f4850d77ec21a236"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 03 16:49:39 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 07 11:41:10 2012 -0700"
      },
      "message": "Clean up the linker a bit, remove prelinking support.\n\nAlso make the errors more readable, since none of us seemed to know\nwhat they actually meant. The new style is still as verbose as the\nold, but that\u0027s probably necessary in the absence of chained exceptions\nin C. Here\u0027s what you\u0027d see if you try to boot after removing\nlibsurfaceflinger.so:\n\n  32267 32267 E AndroidRuntime: java.lang.UnsatisfiedLinkError: Cannot load library: (linker.c:1629, pid 32259) soinfo_link_image: could not load library \"libsystem_server.so\" needed by \"libandroid_servers.so\"; caused by (linker.c:1629, pid 32259) soinfo_link_image: could not load library \"libsurfaceflinger.so\" needed by \"libsystem_server.so\"; caused by (linker.c:709, pid 32259) load_library: library \"libsurfaceflinger.so\" not found\n\nThis patch also fixes almost all of the compiler warnings.\n\nChange-Id: I64bb59aed6d4e039c15ea45be2367f319ef879f8\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": "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": "c99376836021e6623516cf38d42259d38e1a480f",
      "tree": "369350c5eb46452d6c693d8d6aa4286012dccd51",
      "parents": [
        "368ee1e4d65c555fdb0fa4b3a91d75a397936908"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 12:58:56 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 12:58:56 2011 -0700"
      },
      "message": "Revert \"Revert \"libc: Add logcat error message for memory corruption\"\"\n\nThis reverts commit 368ee1e4d65c555fdb0fa4b3a91d75a397936908.\n"
    },
    {
      "commit": "368ee1e4d65c555fdb0fa4b3a91d75a397936908",
      "tree": "bab57744349e2a22c98a07c83d130983d0df5e9c",
      "parents": [
        "877923d369c953d601afd461a04854a27ec720fd"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 06 16:51:54 2011 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 06 16:51:54 2011 +0100"
      },
      "message": "Revert \"libc: Add logcat error message for memory corruption\"\n\nThis fixes the build.\n\nThis reverts commit 7708a89c60e7b024d31c48c8034932c5e9f0aceb.\n"
    },
    {
      "commit": "7708a89c60e7b024d31c48c8034932c5e9f0aceb",
      "tree": "d74fbfa8efa44b57fe91e768b4bea8834c49dd31",
      "parents": [
        "2f5c6d2d663591b0b5cff9f7e90f58f12a5967eb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jun 30 18:32:03 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jul 05 19:53:53 2011 +0200"
      },
      "message": "libc: Add logcat error message for memory corruption\n\nOur dlmalloc implementation currently calls abort() when it detects\nthat the heap is corrupted, or that an invalid pointer is passed to\none of its functions.\n\nThe only way to detect this is because abort() will force-fully\ncrash the current program with a magic fault address of \u00270xdeadbaad\u0027.\n\nHowever, this is not really well documented, and a frequent topic\non the android-ndk forum (among others).\n\nThis change makes our dlmalloc code dump a simple message to the\nlog just before the abort() call (and hence before the stack trace)\nto better help identify the problem.\n\nChange-Id: Iebf7eb7fe26463ecadfaca8f247d237edb441e3c\n"
    },
    {
      "commit": "c4eee3765bf9dd81ff055e70ff7daa83a3926d2a",
      "tree": "fca5f9156dba6f7a3278699da9665c138c08f816",
      "parents": [
        "6ee8f1b0444c0db94931d2cd64427ded8fba38b0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 08 14:22:41 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 10 00:32:08 2009 +0200"
      },
      "message": "Prevent a crash in the memory leak checker (which happened in chk_free())\n\nSimplify the code a little, removing un-necessary mutex locks/unlocks.\nProvide slightly better diagnostic message in case of corruption.\nUse snprintf/strlcat instead of sprintf/strcat\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "6f04a0f4c72acff80dad04828cb69ef67fa609d1",
      "tree": "915db7d93cb742f72b5d3819e69f48cb29c40a15",
      "parents": [
        "2489551343aa89fc539f369f7689c941b78c08d1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132276\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
