)]}'
{
  "log": [
    {
      "commit": "377d4c979dee3dcb5929e8f7a68a53c2407259ab",
      "tree": "1783fe0272f1437faabfe8365e615696eb8d374c",
      "parents": [
        "709a898de82128c065381e258e8e71f0a55df976",
        "1825fb5d5f214849e39d95660795a0d3633f8eeb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I70266ee8c520b216773f267e46c8273d2334c31d\n"
    },
    {
      "commit": "d378c68d74cb4fdac450650fe816c9d649c8edaf",
      "tree": "0d5c15b4606982f26009bdc5c572415ac9dd18d3",
      "parents": [
        "d7ed1ae98249af8a58ce97784a29f048d77789a9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Mar 08 15:13:04 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Mar 08 15:22:13 2010 -0800"
      },
      "message": "Fix spurious DNS lookups in the C library.\n\nThe problem was that the \u0027defdname\u0027 field of res_state structure\nwas not properly initialized in __res_vinit(). This field is used\nto store the default domain name, which is normally build from\ncalling gethostname() (see line 549 of res_init.c).\n\nUnfortunately, in the typical Android case, gethostname() returns\nan error (the hostname is configured) and a random stack string is\nused later to build the DNS search list (see lines 556+ in res_init.c)\n\nFor the sake of illustration, let\u0027s say the search list is set to\na random value like \u0027xWLK\u0027.\n\nThe end result is that when trying to result an unknown domain name\n(e.g. \u0027www.ptn\u0027), the query fails then the resolver tries to make a\nnew query with the DNS search list path(s) appended (e.g. \u0027www.ptn.xWLK\u0027).\n\nThe patch simply initializes \u0027defdname\u0027 to an empty string to avoid\nthis when the net.dns.search system property is not set.\n\nAlso contains whitespace/formatting fixes\n"
    },
    {
      "commit": "9f6915631b918a56e0e6be958fb14d274cbab322",
      "tree": "5d3b311f885dd053f4b816f69e8961ee21c37938",
      "parents": [
        "bd9a90c443ee4582d2be1a68c6f3a2928d130ce4"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Mar 02 10:55:58 2010 -0800"
      },
      "committer": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Mar 02 18:18:04 2010 -0800"
      },
      "message": "bonic: libc: cpuacct support for setuid functions\n\nAny of the setuid functions now updates /acct/uid/ with its own tid\nbefore changing users. This is so we can properly account for cpu time\nper uid.\n\nChange-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "e31c1d0b48b4654d3562fc6c9dd648d72356449e",
      "tree": "b777e461f0d2556bc5183a574ef4e67191347c54",
      "parents": [
        "95604529ec25fe7923ba88312c590f38aa5e3d9e"
      ],
      "author": {
        "name": "Matt Fischer",
        "email": "matt.fischer@garmin.com",
        "time": "Fri Aug 21 15:45:17 2009 -0500"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Fri Feb 12 16:13:46 2010 -0600"
      },
      "message": "Fix pread()/pwrite() stubs\n\nOn ARM EABI, 64-bit function parameters must be aligned\nto an even/odd register pair.  The weird way these stubs\nwere written (using separate lo/hi parameters) prevented\nthis alignment from being enforced by the compiler.\n"
    },
    {
      "commit": "8c59d96e243ba1a05d7d9ab7a14d1a00e20bad4a",
      "tree": "31e06654cca83d98d5b9b1b60a9623404fed99f1",
      "parents": [
        "64ceac3f493e3063a289aec4a12c74787be974e4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 13 16:39:26 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 15 16:27:04 2010 -0800"
      },
      "message": "Add killpg function\n\nChange-Id:\tI9bc347d264fe38faf2d0f9935d2ebb43a353196e\n"
    },
    {
      "commit": "6458c49c96fd2069a82fa6bb48283b4397087a25",
      "tree": "68fcbb5f16ce4bb500f065129c2cf5297cb59e6f",
      "parents": [
        "0b5db51ea6d9c0b877d2ce26440d963760c38dfe"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 12 12:58:12 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 12 12:58:12 2010 -0800"
      },
      "message": "Fix ptsname_r(3) return type to match glibc\n\nThe gHardy man pages specify the return type of ptsname_r to be char*, but the\nreturn value to be 0 on success, negative on error and the gHardy stdlib.h\ndefines extern int ptsname_r(...).\n\nBusybox telnetd fails to run successfully without this change.\n"
    },
    {
      "commit": "99d7907611725e23b6fad3ae7acff4926504e687",
      "tree": "74eb2d8ded9708c4768aab30022cc6307bc39c1e",
      "parents": [
        "278d960aae1b2f0b8a3fa0c8056ba4aded96b133"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 14 17:07:19 2009 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 14 17:07:19 2009 -0800"
      },
      "message": "Fix usleep(3) return type to be POSIX-compliant.\n\nPOSIX usleep(3) returns 0 on successful completion, -1 otherwise:\n  http://www.opengroup.org/onlinepubs/007908799/xsh/usleep.html\n\nThis was found by an external user porting native code:\n  http://groups.google.com/group/android-porting/browse_thread/thread/674848f001db0292\n"
    },
    {
      "commit": "95604529ec25fe7923ba88312c590f38aa5e3d9e",
      "tree": "c6f1dd860fcdc273ab21b696778987261f6e4fa8",
      "parents": [
        "71c0aeb44f2301af85d6a370dbd7308602a1dfe0",
        "194d3fa048cf909ca592dd56fa538dc9cd3f5ddb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 15 12:05:31 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 15 12:05:31 2009 -0800"
      },
      "message": "merge from eclair\n"
    },
    {
      "commit": "194d3fa048cf909ca592dd56fa538dc9cd3f5ddb",
      "tree": "3a00bb9e267cf952d7d1140ff9a39ca07ee6c994",
      "parents": [
        "fde8642fc43bdd224e43e5ee9583a49a758fb03c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:14 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:14 2009 -0800"
      },
      "message": "eclair snapshot\n"
    },
    {
      "commit": "83362689f5b1f6393d376d242fe29541b63ead2d",
      "tree": "729a4fc7fd44630738510d1477e968cb7ec0fa3f",
      "parents": [
        "ecac54db21256952b4b4a9c6f17604ec31743183",
        "ad13c57298e57d33c130fb03a2c6494da573408c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 09 08:04:48 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 09 08:04:48 2009 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "92b10af793da235659198cf38ff2e0237c181058",
      "tree": "66d35bbe34224575dfbf0fde15ec29e424a87ccc",
      "parents": [
        "10093276e98d26428875480c502a278dffe550c7"
      ],
      "author": {
        "name": "Thorsten Glaser",
        "email": "tg@mirbsd.org",
        "time": "Fri Oct 02 15:39:00 2009 +0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 05 15:50:05 2009 -0800"
      },
      "message": "Add the BSD sys_signame array.\n\nSigned-off-by: Thorsten Glaser \u003ctg@mirbsd.org\u003e\n"
    },
    {
      "commit": "b63e4e88b0d13afa431864190b3515a549c16d85",
      "tree": "849f6641a5662202d4b9b596663c981fda5ea541",
      "parents": [
        "73981476a389847e8537cca37503c43e107fadc9",
        "5f32207a3db0bea3ca1c7f4b2b563c11b895f276"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Oct 16 07:28:34 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 16 07:28:34 2009 -0700"
      },
      "message": "am 5f32207a: Wrap ARM abort() to improve stack trace.\n\nMerge commit \u00275f32207a3db0bea3ca1c7f4b2b563c11b895f276\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00275f32207a3db0bea3ca1c7f4b2b563c11b895f276\u0027:\n  Wrap ARM abort() to improve stack trace.\n"
    },
    {
      "commit": "5f32207a3db0bea3ca1c7f4b2b563c11b895f276",
      "tree": "a9a966a87f56d00f0682a66ae8451bcd6d8c2dd4",
      "parents": [
        "5c32826841460294cfba98ff713b4804512bacd1"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Oct 15 16:07:43 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Oct 15 16:29:22 2009 -0700"
      },
      "message": "Wrap ARM abort() to improve stack trace.\n\nThe code generated for Thumb and Thumb2 targets has different handling\nfor abort().  Because abort() is \"noreturn\", it doesn\u0027t need to preserve\nthe callee-save registers.  The Thumb2 version trashes LR and makes it\nimpossible to figure out who called abort().\n\nThis inserts a trivial stub function; net effect is stack traces are\nreasonable after an abort().\n\nFor bug 2191452.\n"
    },
    {
      "commit": "73981476a389847e8537cca37503c43e107fadc9",
      "tree": "a60ed9cc386c36ef6937974e0a729c5d429c57b5",
      "parents": [
        "60c221ccfaf67bdd9cadfd151d0bad9d3f8482ce",
        "4e30c09e57a0351daff70f6657794569445be21c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 14 08:18:23 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 14 08:18:23 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "e36502673d98df089acbc645f077ee0c2be20c5d",
      "tree": "14c5fa566500510d0b37fd1cb6da35c6153ad4d7",
      "parents": [
        "fdc5c1f56f9d21034badb8e4b092c47098f19613"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 15:35:22 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 16:02:12 2009 -0700"
      },
      "message": "fix [2170898] abort() doesn\u0027t print a stack tarce\n\nthe issue here is that abort() can be called from anywhere, in particular\nfrom malloc or free. When we try to use the debug_log functions, these\ncan end up calling into some code (like malloc/free) that called abort()\nin the first place and end up in an infinite recursion loop.\n"
    },
    {
      "commit": "336efb5267e465ac52d78327d37f79553b3f0584",
      "tree": "5113da0deda9f253fd6964e129132b8a2fb8545e",
      "parents": [
        "90ec5f2a3f581927ffef55733e8d531890fdc90e"
      ],
      "author": {
        "name": "Tony Sim",
        "email": "sim.chinyeow@renesas.com",
        "time": "Wed Jul 01 15:35:27 2009 +0900"
      },
      "committer": {
        "name": "Tony Sim",
        "email": "sim.chinyeow@renesas.com",
        "time": "Wed Jul 01 15:35:27 2009 +0900"
      },
      "message": "added syscalls for SuperH which automatically generate by gensyscalls.py\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": "7d9dcdc82a871926e5e3a27143908fa3f4181b5f",
      "tree": "9f06bfedddae069d0388739f5f2779472da5dc7f",
      "parents": [
        "6f04a0f4c72acff80dad04828cb69ef67fa609d1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 20 07:38:28 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 20 07:38:28 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132569\n"
    },
    {
      "commit": "d37527501c85edcb3a6a7c8a0b6297d52d434897",
      "tree": "f005d945ce90569b8e63cf42294ab42dddab52c2",
      "parents": [
        "e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:55 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:55 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@127101\n"
    },
    {
      "commit": "e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2",
      "tree": "2cbd43daa6744ed80e833528f8cbfc0c485e5253",
      "parents": [
        "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\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"
    }
  ]
}
