[libvirt] [PATCH] libxl: fix usb inputs loop error

Jim Fehlig jfehlig at suse.com
Tue Jan 10 21:34:10 UTC 2017


Cédric Bosdonnat wrote:
> List indexes where mixed up in the code looping over the USB
> input devices.
> ---
>  src/libxl/libxl_conf.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index ac83b51c7..1053e60a1 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -479,7 +479,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
>              if (VIR_EXPAND_N(b_info->u.hvm.usbdevice_list, nusbdevice, 1) < 0)
>                  return -1;
>  #else
> -            if (i > 1) {
> +            if (nusbdevice > 1) {

IIUC, when LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST is not defined nusbdevice will
always be 0. I think we need to increment it before the > 1 check.

Regards,
Jim

>                  virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
>                          _("libxenlight supports only one input device"));
>                  return -1;
> @@ -487,7 +487,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
>  #endif
>  
>  #ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST
> -            usbdevice = &b_info->u.hvm.usbdevice_list[i];
> +            usbdevice = &b_info->u.hvm.usbdevice_list[nusbdevice - 1];
>  #else
>              usbdevice = &b_info->u.hvm.usbdevice;
>  #endif




More information about the libvir-list mailing list