qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Fwd: [BUG] Failed to compile using gcc7.1


From: Tsung-en Hsiao
Subject: [Qemu-devel] Fwd: [BUG] Failed to compile using gcc7.1
Date: Mon, 12 Jun 2017 03:08:22 +0800

Hi all,
I encountered the same problem on gcc 7.1.1 and found Qu's mail in
this list from google search.

Temporarily fix it by specifying the string length in snprintf
directive. Hope this is helpful to other people encountered the same
problem.

@@ -1,9 +1,7 @@
---
--- a/block/blkdebug.c
-                 "blkdebug:%s:%s", s->config_file ?: "",
--- a/block/blkverify.c
-                 "blkverify:%s:%s",
--- a/hw/usb/bus.c
-        snprintf(downstream->path, sizeof(downstream->path), "%s.%d",
-        snprintf(downstream->path, sizeof(downstream->path), "%d", portnr);
--
+++ b/block/blkdebug.c
+                 "blkdebug:%.2037s:%.2037s", s->config_file ?: "",
+++ b/block/blkverify.c
+                 "blkverify:%.2038s:%.2038s",
+++ b/hw/usb/bus.c
+        snprintf(downstream->path, sizeof(downstream->path), "%.12s.%d",
+        snprintf(downstream->path, sizeof(downstream->path), "%.12d", portnr);

Tsung-en Hsiao

> Qu Wenruo Wrote:
>
> Hi all,
>
> After upgrading gcc from 6.3.1 to 7.1.1, qemu can't be compiled with gcc.
>
> The error is:
>
> ------
>  CC      block/blkdebug.o
> block/blkdebug.c: In function 'blkdebug_refresh_filename':
>
> block/blkdebug.c:693:31: error: '%s' directive output may be truncated 
> writing up to 4095 bytes into a region of size 4086 
> [-Werror=format-truncation=]
>
>                  "blkdebug:%s:%s", s->config_file ?: "",
>                               ^~
> In file included from /usr/include/stdio.h:939:0,
>                 from /home/adam/qemu/include/qemu/osdep.h:68,
>                 from block/blkdebug.c:25:
>
> /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output 11 
> or more bytes (assuming 4106) into a destination of size 4096
>
>   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        __bos (__s), __fmt, __va_arg_pack ());
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> make: *** [/home/adam/qemu/rules.mak:69: block/blkdebug.o] Error 1
> ------
>
> It seems that gcc 7 is introducing more restrict check for printf.
>
> If using clang, although there are some extra warning, it can at least pass 
> the compile.
>
> Thanks,
> Qu



reply via email to

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