)]}'
{
  "commit": "7de3abe505e34398cef5bddf6c4d0bd9ee47007f",
  "tree": "6c0c64a3d067116f78673ac9d13d1f2e43896657",
  "parents": [
    "d24b569a4162c54426ab5088637b824f54f6ac16"
  ],
  "author": {
    "name": "Anthony Liguori",
    "email": "aliguori@us.ibm.com",
    "time": "Wed Jun 27 07:37:54 2012 -0500"
  },
  "committer": {
    "name": "Anthony Liguori",
    "email": "aliguori@us.ibm.com",
    "time": "Wed Jun 27 16:26:59 2012 -0500"
  },
  "message": "qdev: fix use-after-free in the error path of qdev_init_nofail\n\nFrom Markus:\n\nBefore:\n\n    $ qemu-system-x86_64 -display none -drive if\u003dide\n    qemu-system-x86_64: Device needs media, but drive is empty\n    qemu-system-x86_64: Initialization of device ide-hd failed\n    [Exit 1 ]\n\nAfter:\n\n    $ qemu-system-x86_64 -display none -drive if\u003dide\n    qemu-system-x86_64: Device needs media, but drive is empty\n    Segmentation fault (core dumped)\n    [Exit 139 (SIGSEGV)]\n\nThis error always existed as qdev_init() frees the object.  But QOM\ngoes a bit further and purposefully sets the class pointer to NULL to\nhelp find use-after-free.  It worked :-)\n\nCc: Andreas Faerber \u003cafaerber@suse.de\u003e\nReported-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a6c4c02947748bc3d091fe8a3bae2a8dcaf653ac",
      "old_mode": 33188,
      "old_path": "hw/qdev.c",
      "new_id": "af544675bf565057b13194ff6ababc8b7503197a",
      "new_mode": 33188,
      "new_path": "hw/qdev.c"
    }
  ]
}
