[libvirt] [PATCH v2] xenconfig: fix handling of NULL disk source
Jim Fehlig
jfehlig at suse.com
Fri May 19 14:54:09 UTC 2017
On 05/19/2017 08:38 AM, Wim Ten Have wrote:
> From: Wim ten Have <wim.ten.have at oracle.com>
>
> 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 <wim.ten.have at oracle.com>
> ---
> src/xenconfig/xen_xl.c | 4 ++++
> tests/xlconfigdata/test-disk-positional-parms-partial.cfg | 2 +-
> tests/xlconfigdata/test-disk-positional-parms-partial.xml | 6 ++++++
> 3 files changed, 11 insertions(+), 1 deletion(-)
Reviewed-by: Jim Fehlig <jfehlig at suse.com>
and pushed. Thanks!
Regards,
Jim
>
> diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c
> index 4f24d45..cac440c 100644
> --- a/src/xenconfig/xen_xl.c
> +++ b/src/xenconfig/xen_xl.c
> @@ -316,6 +316,10 @@ xenParseXLDiskSrc(virDomainDiskDefPtr disk, char *srcstr)
> 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;
> diff --git a/tests/xlconfigdata/test-disk-positional-parms-partial.cfg b/tests/xlconfigdata/test-disk-positional-parms-partial.cfg
> index fd16db0..940304e 100644
> --- a/tests/xlconfigdata/test-disk-positional-parms-partial.cfg
> +++ b/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" ]
> diff --git a/tests/xlconfigdata/test-disk-positional-parms-partial.xml b/tests/xlconfigdata/test-disk-positional-parms-partial.xml
> index e86a5be..52b21dc 100644
> --- a/tests/xlconfigdata/test-disk-positional-parms-partial.xml
> +++ b/tests/xlconfigdata/test-disk-positional-parms-partial.xml
> @@ -39,6 +39,12 @@
> <readonly/>
> <address type='drive' controller='0' bus='1' target='0' unit='0'/>
> </disk>
> + <disk type='file' device='cdrom'>
> + <driver name='qemu' type='raw'/>
> + <target dev='hdd' bus='ide'/>
> + <readonly/>
> + <address type='drive' controller='0' bus='1' target='0' unit='1'/>
> + </disk>
> <controller type='ide' index='0'/>
> <interface type='bridge'>
> <mac address='00:16:3e:66:92:9c'/>
>
More information about the libvir-list
mailing list