On 1/18/21 12:35 PM, Daniel P. Berrangé wrote: > On Mon, Jan 18, 2021 at 12:31:07PM +0100, Philippe Mathieu-Daudé wrote: >> Hello, >> >> On 5/3/19 8:59 AM, Gerd Hoffmann wrote: >>> From: Daniel P. Berrangé <berra...@redhat.com> >>> >>> hw/usb/hcd-xhci.c: In function ‘usb_xhci_realize’: >>> hw/usb/hcd-xhci.c:3339:66: warning: ‘%d’ directive output may be truncated >>> writing between 1 and 10 bytes into a region of size 5 [-Wformat-trunca\ >>> tion=] >>> 3339 | snprintf(port->name, sizeof(port->name), "usb2 port >>> #%d", i+1); >>> | ^~ >>> hw/usb/hcd-xhci.c:3339:54: note: directive argument in the range [1, >>> 2147483647] >>> 3339 | snprintf(port->name, sizeof(port->name), "usb2 port >>> #%d", i+1); >>> | ^~~~~~~~~~~~~~~ >>> >>> The xhci code formats the port name into a fixed length >>> buffer which is only large enough to hold port numbers >>> upto 5 digits in decimal representation. We're never >>> going to have a port number that large, so aserting the >>> port number is sensible is sufficient to tell GCC the >>> formatted string won't be truncated. >>> >>> Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> >>> Message-Id: <20190412121626.19829-5-berra...@redhat.com> >>> >>> [ kraxel: also s/int/unsigned int/ to tell gcc they can't >>> go negative. ] >>> >>> Signed-off-by: Gerd Hoffmann <kra...@redhat.com> >>> --- >>> hw/usb/hcd-xhci.c | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c >>> index d8472b4fea7f..2e9a839f2bf9 100644 >>> --- a/hw/usb/hcd-xhci.c >>> +++ b/hw/usb/hcd-xhci.c >>> @@ -3306,7 +3306,7 @@ static void usb_xhci_init(XHCIState *xhci) >>> { >>> DeviceState *dev = DEVICE(xhci); >>> XHCIPort *port; >>> - int i, usbports, speedmask; >>> + unsigned int i, usbports, speedmask; >>> >>> xhci->usbsts = USBSTS_HCH; >>> >>> @@ -3336,6 +3336,7 @@ static void usb_xhci_init(XHCIState *xhci) >>> USB_SPEED_MASK_LOW | >>> USB_SPEED_MASK_FULL | >>> USB_SPEED_MASK_HIGH; >>> + assert(i < MAXPORTS); >>> snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1); >>> speedmask |= port->speedmask; >>> } >>> @@ -3349,6 +3350,7 @@ static void usb_xhci_init(XHCIState *xhci) >>> } >>> port->uport = &xhci->uports[i]; >>> port->speedmask = USB_SPEED_MASK_SUPER; >>> + assert(i < MAXPORTS); >>> snprintf(port->name, sizeof(port->name), "usb3 port #%d", i+1); >>> speedmask |= port->speedmask; >>> } >>> >> >> I am confused, I upgraded Fedora 32 -> 33 and am now getting this >> error back, the assertion being apparently ignored: > > I'm not seeing this on F33 myself, but our CI is still F32. We > should upgrade that. > > What are your configure args ?
Ah sorry, this is my --extra-cflags=-m32 config directory.