)]}'
{
  "commit": "a76f48e53382e6f039db6278443e3ce437653302",
  "tree": "1e9f31249bc29c15225fac0cc720dc9bab653b07",
  "parents": [
    "a684f3cf9b9b9c3cb82be87aafc463de8974610c"
  ],
  "author": {
    "name": "Matthew Daley",
    "email": "mattjd@gmail.com",
    "time": "Thu Oct 10 14:10:48 2013 +0000"
  },
  "committer": {
    "name": "Stefano Stabellini",
    "email": "stefano.stabellini@eu.citrix.com",
    "time": "Thu Oct 10 14:23:45 2013 +0000"
  },
  "message": "xen_disk: mark ioreq as mapped before unmapping in error case\n\nCommit 4472beae modified the semantics of ioreq_{un,}map so that they are\nidempotent if called when they\u0027re not needed (ie., twice in a row). However,\nit neglected to handle the case where batch mapping is not being used (the\ndefault), and one of the grants fails to map. In this case, ioreq_unmap will\nbe called to unwind and unmap any mappings already performed, but ioreq_unmap\nsimply returns due to the aforementioned change (the ioreq has not already\nbeen marked as mapped).\n\nThe frontend user can therefore force xen_disk to leak grant mappings, a\nper-domain limited resource.\n\nFix by marking the ioreq as mapped before calling ioreq_unmap in this\nsituation.\n\nSigned-off-by: Matthew Daley \u003cmattjd@gmail.com\u003e\nSigned-off-by: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f35fc5944a08a539a05adcd871e4eb155412d155",
      "old_mode": 33188,
      "old_path": "hw/block/xen_disk.c",
      "new_id": "8742294dfbddd7c742a68706ffa84b2e02e2a728",
      "new_mode": 33188,
      "new_path": "hw/block/xen_disk.c"
    }
  ]
}
