hw/usb: avoid format truncation warning when formatting port name
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é <berrange@redhat.com> Message-Id: <20190412121626.19829-5-berrange@redhat.com> [ kraxel: also s/int/unsigned int/ to tell gcc they can't go negative. ] Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
34d97308f6
commit
ccb799313a
@ -3306,7 +3306,7 @@ static void usb_xhci_init(XHCIState *xhci)
|
|||||||
{
|
{
|
||||||
DeviceState *dev = DEVICE(xhci);
|
DeviceState *dev = DEVICE(xhci);
|
||||||
XHCIPort *port;
|
XHCIPort *port;
|
||||||
int i, usbports, speedmask;
|
unsigned int i, usbports, speedmask;
|
||||||
|
|
||||||
xhci->usbsts = USBSTS_HCH;
|
xhci->usbsts = USBSTS_HCH;
|
||||||
|
|
||||||
@ -3336,6 +3336,7 @@ static void usb_xhci_init(XHCIState *xhci)
|
|||||||
USB_SPEED_MASK_LOW |
|
USB_SPEED_MASK_LOW |
|
||||||
USB_SPEED_MASK_FULL |
|
USB_SPEED_MASK_FULL |
|
||||||
USB_SPEED_MASK_HIGH;
|
USB_SPEED_MASK_HIGH;
|
||||||
|
assert(i < MAXPORTS);
|
||||||
snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1);
|
snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1);
|
||||||
speedmask |= port->speedmask;
|
speedmask |= port->speedmask;
|
||||||
}
|
}
|
||||||
@ -3349,6 +3350,7 @@ static void usb_xhci_init(XHCIState *xhci)
|
|||||||
}
|
}
|
||||||
port->uport = &xhci->uports[i];
|
port->uport = &xhci->uports[i];
|
||||||
port->speedmask = USB_SPEED_MASK_SUPER;
|
port->speedmask = USB_SPEED_MASK_SUPER;
|
||||||
|
assert(i < MAXPORTS);
|
||||||
snprintf(port->name, sizeof(port->name), "usb3 port #%d", i+1);
|
snprintf(port->name, sizeof(port->name), "usb3 port #%d", i+1);
|
||||||
speedmask |= port->speedmask;
|
speedmask |= port->speedmask;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user