qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Hacks for building on gcc 7 / Fedora 26


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] Hacks for building on gcc 7 / Fedora 26
Date: Mon, 17 Jul 2017 16:16:37 +0200

  Hi,

> FWIW, most of these have been fixed in the meantime; the only
> remaining
> hack I had to add was:
> 
> diff --git i/hw/usb/bus.c w/hw/usb/bus.c
> index 5939b273b9..bce011058b 100644
> --- i/hw/usb/bus.c
> +++ w/hw/usb/bus.c
> @@ -407,8 +407,9 @@ void usb_register_companion(const char
> *masterbus,
> USBPort *ports[],
>  void usb_port_location(USBPort *downstream, USBPort *upstream, int
> portnr)
>  {
>      if (upstream) {
> -        snprintf(downstream->path, sizeof(downstream->path),
> "%s.%d",
> -                 upstream->path, portnr);
> +        int l = snprintf(downstream->path, sizeof(downstream->path),
> "%s.%d",
> +                         upstream->path, portnr);
> +        assert(l < sizeof(downstream->path));

Approach looks ok to me.

Maximum hub chain length is 5, number of ports hubs is limited too,
you'll never need more that two digits for port numbers.  So 2*5 plus 4
connecting dots => 14 chars is the max strlen.  path size is 16, so it
will fit, including the terminating \0.

Trying things like "assert(portnr <= 99)" have no effect on the
possible string length calculated by gcc7.

cheers,
  Gerd




reply via email to

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