)]}'
{
  "log": [
    {
      "commit": "9bd9b7dd205e79577f5cd1d9488aabe0f213ce35",
      "tree": "502fe092fd17b7eddae73d1bebe417ff40a81889",
      "parents": [
        "15e71cd760c35a4eab09b850904581ebbdc9bee3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 11:54:21 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 11:54:21 2014 -0800"
      },
      "message": "If the kernel doesn\u0027t have MADV_MERGEABLE, stop asking for it.\n\nNote that a dynamically-linked binary will still probably see two attempts ---\none by the dynamic linker (which will set its copy of the flag so it won\u0027t try\nagain) and then one by the executable itself (which gets a new uninitialized\ncopy of the flag).\n\nChange-Id: Id6b7e47780f0f24d2ca0384a75373f4824fa8f12\n"
    },
    {
      "commit": "431166d99519f6794f10c48694913d2fe864b841",
      "tree": "7c148908e51c210646a28f890da96897e6000138",
      "parents": [
        "652dd5196df87bdeef7bff452f1a4857a96e3133"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:28:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:36:56 2014 -0800"
      },
      "message": "Fix 32-bit mmap/mmap64 handling of negative offsets.\n\nWe don\u0027t actually need to worry about sign extension if we reject\nnegative values ourselves. Previously it was possible to come up\nwith negative but aligned values that we would pass to the kernel;\nin the case of mmap (as opposed to mmap64) we\u0027d incorrectly turn\nthose into large positive offsets.\n\nChange-Id: I2aa583e0f892d59bb77429aea8730b72db32dcb0\n"
    },
    {
      "commit": "99868904feeac944a0d482a2994f9d7b6828bff2",
      "tree": "1f630430195de631470350904561211cc5e3a8c8",
      "parents": [
        "22323f91b11b0fbaa0a101a75e116132028a5817"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 18:17:34 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 18:17:34 2013 -0800"
      },
      "message": "Avoid sign extension in 32-bit mmap.\n\nChange-Id: I2a77925f62f381a0b34648c3db8154a55dd80c46\n"
    },
    {
      "commit": "afcc0cccdafef0c67600cbbc72cee0e7a41f3f04",
      "tree": "506a007c24f06d7ec6415c22901f7485c06b8797",
      "parents": [
        "d5ddf40ecf72a03e38164389555ccdade779ab5a"
      ],
      "author": {
        "name": "Daniel Leung",
        "email": "daniel.leung@intel.com",
        "time": "Wed Sep 18 14:41:18 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 14:11:26 2013 -0700"
      },
      "message": "Add mmap64()\n\nThis adds mmap64() to bionic so that it is possible to have\nlarge offset passed to kernel. However, the syscall mechanism\nonly passes 32-bit number to kernel. So effectively, the\nlargest offset that can be passed is about 43 bits (since\noffset is signed, and the number passed to kernel is number\nof pages (page size \u003d\u003d 4K \u003d\u003e 12 bits)).\n\nChange-Id: Ib54f4e9b54acb6ef8b0324f3b89c9bc810b07281\nSigned-off-by: Andrew Boie \u003candrew.p.boie@intel.com\u003e\n"
    },
    {
      "commit": "e320a8c7802eb54f80693db03bb2a201580875e7",
      "tree": "2b803053b2b802f4ad01869d0f479a3bae89f6a2",
      "parents": [
        "bfba6aac99115972fad3341aef595c0ca1f7258b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 25 10:15:07 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 25 10:15:07 2013 -0700"
      },
      "message": "Avoid sign extension of the mmap offset.\n\noff_t is signed to support seeking backwards, but that\u0027s a liability\nwhen using off_t to represent a subset of a file.\n\nChange-Id: I2a3615166eb16212347eb47f1242e3bfb93c2022\n"
    },
    {
      "commit": "107cdd406b8e404af4d552498076cfe2dfe5efbf",
      "tree": "3a16d2410197ce4a4daabe8b1a5dd4a27893be80",
      "parents": [
        "b7b36b819e8029a152859f3204ba2da38a0e2879"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:12:26 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:12:26 2013 -0700"
      },
      "message": "Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno.\n\nBug: 9889616\nChange-Id: I4a7323e0ae5aeb5cbe0da1b2bc7501d83b3a2aa4\n"
    },
    {
      "commit": "b7b36b819e8029a152859f3204ba2da38a0e2879",
      "tree": "3dfd8b38bf81525d758d5d7225cf22310f966006",
      "parents": [],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 20:02:11 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 17 20:02:11 2013 +0000"
      },
      "message": "Merge \"mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps\""
    }
  ]
}
