From: Martin Kletzander Date: Fri, 8 Jan 2016 12:59:20 +0000 (+0100) Subject: Don't clear libvirt-internal paths when parsing status XML X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8223bd22ed90680544ce153da0001376b58a7cf8;p=libvirt.git Don't clear libvirt-internal paths when parsing status XML Earlier commit 714080791778e3dfbd484ccb3953bffd820b8ba9 forgot to deal properly with status XMLs where we want the libvirt-internal paths to be kept in place and not cleared, otherwise we could end up copying a NULL string and segfaulting th daemon. Signed-off-by: Martin Kletzander --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 59531d2e5e..55d5e7103c 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1306,7 +1306,7 @@ static int qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, const virDomainDef *def, virCapsPtr caps ATTRIBUTE_UNUSED, - unsigned int parseFlags ATTRIBUTE_UNUSED, + unsigned int parseFlags, void *opaque) { virQEMUDriverPtr driver = opaque; @@ -1381,8 +1381,9 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, ARCH_IS_S390(def->os.arch)) dev->data.controller->model = VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI; - /* clear auto generated unix socket path */ - if (dev->type == VIR_DOMAIN_DEVICE_CHR && + /* clear auto generated unix socket path for inactive definitions */ + if ((parseFlags & VIR_DOMAIN_DEF_PARSE_INACTIVE) && + dev->type == VIR_DOMAIN_DEVICE_CHR && dev->data.chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL && dev->data.chr->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO && dev->data.chr->source.type == VIR_DOMAIN_CHR_TYPE_UNIX &&