qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-4.0] hw/usb/bus.c: Handle "no speed matched"


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH for-4.0] hw/usb/bus.c: Handle "no speed matched" case in usb_mask_to_str()
Date: Thu, 28 Mar 2019 19:55:57 +0100

Le jeu. 28 mars 2019 14:36, Peter Maydell <address@hidden> a
écrit :

> In usb_mask_to_str() we convert a mask of USB speeds into
> a human-readable string (like "full+high") for use in
> tracing and error messages. However the conversion code
> doesn't do anything to the string buffer if the passed in
> speedmask doesn't match any of the recognized speeds,
> which means that the tracing and error messages will
> end up with random garbage in them. This can happen if
> we're doing USB device passthrough.
>
> Handle the "unrecognized speed" case by using the
> string "unknown".
>
> Fixes: https://bugs.launchpad.net/qemu/+bug/1603785
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> Tested by temporarily fiddling with the callsites to
> pass in a 0 speedmask, since I don't have any USB passthrough
> stuff handy.
> ---
>  hw/usb/bus.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
> index 6fffab7bfa4..9a74dc95601 100644
> --- a/hw/usb/bus.c
> +++ b/hw/usb/bus.c
> @@ -500,6 +500,10 @@ static void usb_mask_to_str(char *dest, size_t size,
>                              speeds[i].name);
>          }
>      }
> +
> +    if (pos == 0) {
> +        snprintf(dest, size, "unknown");
> +    }
>  }
>
>  void usb_check_attach(USBDevice *dev, Error **errp)
> --
> 2.20.1
>

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]