Fix this build warning with GCC 9 on Fedora 30:
hw/usb/hcd-xhci.c:3339:66: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 5 [-Werror=format-truncation=]
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);
| ^~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:867,
from /home/alistair/qemu/include/qemu/osdep.h:99,
from hw/usb/hcd-xhci.c:21:
/usr/include/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output between 13 and 22 bytes into a destination of size 16
67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
hw/usb/hcd-xhci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index ec28bee319..2b061772b2 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -3322,6 +3322,7 @@ static void usb_xhci_init(XHCIState *xhci)
usb_bus_new(&xhci->bus, sizeof(xhci->bus), &xhci_bus_ops, dev);
for (i = 0; i < usbports; i++) {
+ g_assert(i < MAX(MAXPORTS_2, MAXPORTS_3));
speedmask = 0;
if (i < xhci->numports_2) {
if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
--
2.21.0
Le 01/05/2019 à 01:28, Alistair Francis a écrit :
> Fix this build warning with GCC 9 on Fedora 30:
> hw/usb/hcd-xhci.c:3339:66: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 5 [-Werror=format-truncation=]
> 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);
> | ^~~~~~~~~~~~~~~
> In file included from /usr/include/stdio.h:867,
> from /home/alistair/qemu/include/qemu/osdep.h:99,
> from hw/usb/hcd-xhci.c:21:
> /usr/include/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output between 13 and 22 bytes into a destination of size 16
> 67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 68 | __bos (__s), __fmt, __va_arg_pack ());
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
> hw/usb/hcd-xhci.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
> index ec28bee319..2b061772b2 100644
> --- a/hw/usb/hcd-xhci.c
> +++ b/hw/usb/hcd-xhci.c
> @@ -3322,6 +3322,7 @@ static void usb_xhci_init(XHCIState *xhci)
> usb_bus_new(&xhci->bus, sizeof(xhci->bus), &xhci_bus_ops, dev);
>
> for (i = 0; i < usbports; i++) {
> + g_assert(i < MAX(MAXPORTS_2, MAXPORTS_3));
> speedmask = 0;
> if (i < xhci->numports_2) {
> if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
On Tue, Apr 30, 2019 at 11:28:31PM +0000, Alistair Francis wrote:
> Fix this build warning with GCC 9 on Fedora 30:
> hw/usb/hcd-xhci.c:3339:66: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 5 [-Werror=format-truncation=]
> 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);
> | ^~~~~~~~~~~~~~~
> In file included from /usr/include/stdio.h:867,
> from /home/alistair/qemu/include/qemu/osdep.h:99,
> from hw/usb/hcd-xhci.c:21:
> /usr/include/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output between 13 and 22 bytes into a destination of size 16
> 67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 68 | __bos (__s), __fmt, __va_arg_pack ());
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
> hw/usb/hcd-xhci.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
> index ec28bee319..2b061772b2 100644
> --- a/hw/usb/hcd-xhci.c
> +++ b/hw/usb/hcd-xhci.c
> @@ -3322,6 +3322,7 @@ static void usb_xhci_init(XHCIState *xhci)
> usb_bus_new(&xhci->bus, sizeof(xhci->bus), &xhci_bus_ops, dev);
>
> for (i = 0; i < usbports; i++) {
> + g_assert(i < MAX(MAXPORTS_2, MAXPORTS_3));
> speedmask = 0;
> if (i < xhci->numports_2) {
> if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) {
I proposed a slightly different fix here:
https://lists.gnu.org/archive/html/qemu-devel/2019-04/msg02125.html
but both have the same effect
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 4/30/19 4:28 PM, Alistair Francis wrote:
> for (i = 0; i < usbports; i++) {
> + g_assert(i < MAX(MAXPORTS_2, MAXPORTS_3));
I would hope that it works to move this out of the loop:
g_assert(usbports <= MAX(MAXPORTS_2, MAXPORTS_3));
r~
On 5/1/19 4:12 PM, Richard Henderson wrote:
> On 4/30/19 4:28 PM, Alistair Francis wrote:
>> for (i = 0; i < usbports; i++) {
>> + g_assert(i < MAX(MAXPORTS_2, MAXPORTS_3));
>
> I would hope that it works to move this out of the loop:
>
> g_assert(usbports <= MAX(MAXPORTS_2, MAXPORTS_3));
With Richard suggestion:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
On Wed, May 1, 2019 at 7:12 AM Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> On 4/30/19 4:28 PM, Alistair Francis wrote:
> > for (i = 0; i < usbports; i++) {
> > + g_assert(i < MAX(MAXPORTS_2, MAXPORTS_3));
>
> I would hope that it works to move this out of the loop:
>
> g_assert(usbports <= MAX(MAXPORTS_2, MAXPORTS_3));
Yes, that also works. I have updated the patch.
Alistair
>
>
> r~
© 2016 - 2025 Red Hat, Inc.