[libvirt] [PATCH 2/3] libxl: Set disk format for empty cdrom device

Michal Privoznik mprivozn at redhat.com
Thu Apr 3 14:16:37 UTC 2014


On 27.03.2014 17:55, Stefan Bader wrote:
> The XML config for a CDROM device can be without a source path,
> indicating that there is no media present. Without this change
> the libxl driver fails to start a guest in that case because
> the libxl library checks for the LIBXL_DISK_FORMAT_EMPTY format
> type and tries to stat the NULL pointer that gets passed on.
>
>> libxl: error: libxl_device.c:265:libxl__device_disk_set_backend:
>> Disk vdev=hdc failed to stat: (null): Bad address
>
> Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
> ---
>   src/libxl/libxl_conf.c |    3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index de6f7ce..b8de72a 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -827,6 +827,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
>       x_disk->removable = 1;
>       x_disk->readwrite = !l_disk->readonly;
>       x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
> +    /* An empty CDROM must have the empty format, otherwise libxl fails. */
> +    if (x_disk->is_cdrom && !x_disk->pdev_path)
> +        x_disk->format = LIBXL_DISK_FORMAT_EMPTY;
>       if (l_disk->transient) {
>           virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
>                          _("libxenlight does not support transient disks"));
>

ACK

Michal




More information about the libvir-list mailing list