From: Wolfgang Mauerer Date: Tue, 2 Mar 2010 08:24:59 +0000 (+0100) Subject: Fix data structure handling when controllers are attached X-Git-Tag: v0.7.7~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24cc058e5e74e6b35b8f0e42e16ebbdc245e19ac;p=thirdparty%2Flibvirt.git Fix data structure handling when controllers are attached * src/qemu/qemu_driver.c: in qemudDomainAttachDevice(), one must not delete the data part when the operation succeeds because it is required later on. The correct pattern to handlethe parsed representation of the device information on success is dev->data.controller = NULL; virDomainDeviceDefFree(dev);, which leaves the structure pointed at by data in memory. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 1586e358a9..5394ff59d9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6111,6 +6111,8 @@ static int qemudDomainAttachDevice(virDomainPtr dom, if (dev->data.controller->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI) { ret = qemudDomainAttachPciControllerDevice(driver, vm, dev->data.controller, qemuCmdFlags); + if (ret == 0) + dev->data.controller = NULL; } else { qemuReportError(VIR_ERR_NO_SUPPORT, _("disk controller bus '%s' cannot be hotplugged."),