commit 4cd3f241399eb691a7fc9a1279938bfe76215a77 Author: Wim ten Have Date: Fri May 19 16:38:43 2017 +0200 xenconfig: fix handling of NULL disk source It is possible to crash libvirtd when converting xl native config to domXML when the xl config contains an empty disk source, e.g. an empty CDROM. Fix by checking that the disk source is non-NULL before parsing it. Signed-off-by: Wim ten Have Index: libvirt-3.3.0/src/xenconfig/xen_xl.c =================================================================== --- libvirt-3.3.0.orig/src/xenconfig/xen_xl.c +++ libvirt-3.3.0/src/xenconfig/xen_xl.c @@ -316,6 +316,10 @@ xenParseXLDiskSrc(virDomainDiskDefPtr di char *tmpstr = NULL; int ret = -1; + /* A NULL source is valid, e.g. an empty CDROM */ + if (srcstr == NULL) + return 0; + if (STRPREFIX(srcstr, "rbd:")) { if (!(tmpstr = virStringReplace(srcstr, "\\\\", "\\"))) goto cleanup; Index: libvirt-3.3.0/tests/xlconfigdata/test-disk-positional-parms-partial.cfg =================================================================== --- libvirt-3.3.0.orig/tests/xlconfigdata/test-disk-positional-parms-partial.cfg +++ libvirt-3.3.0/tests/xlconfigdata/test-disk-positional-parms-partial.cfg @@ -22,4 +22,4 @@ parallel = "none" serial = "none" builder = "hvm" boot = "d" -disk = [ "/dev/HostVG/XenGuest2,,hda,,backendtype=phy", "/var/lib/libvirt/images/XenGuest2-home,,hdb,,", "/root/boot.iso,,hdc,,devtype=cdrom" ] +disk = [ "/dev/HostVG/XenGuest2,,hda,,backendtype=phy", "/var/lib/libvirt/images/XenGuest2-home,,hdb,,", "/root/boot.iso,,hdc,,devtype=cdrom" , "format=raw,vdev=hdd,access=ro,devtype=cdrom" ] Index: libvirt-3.3.0/tests/xlconfigdata/test-disk-positional-parms-partial.xml =================================================================== --- libvirt-3.3.0.orig/tests/xlconfigdata/test-disk-positional-parms-partial.xml +++ libvirt-3.3.0/tests/xlconfigdata/test-disk-positional-parms-partial.xml @@ -39,6 +39,12 @@
+ + + + +
+