Re: gcc 8/8.1 warnings

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

 



Hi

2018年6月5日(火) 23:56 Jens Axboe <axboe@xxxxxxxxx>:
>
> Hi,
>
> If someone is looking for a little project, compiling fio with
> gcc 8/8.1 triggers a new set of overflow warnings. I've included
> them below.

What's the CFLAGS being used ?
I see lots of warnings on Fedora 28 (gcc 8.1.1), but only with
additional -Wextra.

>
> FIO_VERSION = fio-3.7-5-g85e9
> In file included from filesetup.c:9:
> filesetup.c: In function ‘generic_open_file’:
> fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 101 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> fio.h:482:2: note: in expansion of macro ‘__td_verror’
>   __td_verror((td), (err), strerror((err)), (func)); \
>   ^~~~~~~~~~~
> filesetup.c:699:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, __e, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from fio.h:11,
>                  from filesetup.c:9:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 36 or more bytes (assuming 163) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from filesetup.c:9:
> fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 101 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> fio.h:484:3: note: in expansion of macro ‘__td_verror’
>    __td_verror((td)->parent, (err), strerror((err)), (func)); \
>    ^~~~~~~~~~~
> filesetup.c:699:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, __e, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from fio.h:11,
>                  from filesetup.c:9:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 36 or more bytes (assuming 163) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from verify.h:6,
>                  from verify.c:12:
> verify.c: In function ‘open_state_file’:
> verify-state.h:104:28: warning: ‘-’ directive output may be truncated writing 1 byte into a region of size between 0 and 4095 [-Wformat-truncation=]
>   snprintf(out, size, "%s-%s-%d-verify.state", prefix, ename, num);
>                             ^
> In file included from /usr/include/stdio.h:862,
>                  from fio.h:11,
>                  from verify.c:11:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 17 or more bytes (assuming 4112) into a destination of size 4096
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from filesetup.c:9:
> filesetup.c: In function ‘recurse_dir’:
> fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 100 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> fio.h:482:2: note: in expansion of macro ‘__td_verror’
>   __td_verror((td), (err), strerror((err)), (func)); \
>   ^~~~~~~~~~~
> filesetup.c:1743:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, errno, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from fio.h:11,
>                  from filesetup.c:9:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 37 or more bytes (assuming 164) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from filesetup.c:9:
> fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 100 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> fio.h:484:3: note: in expansion of macro ‘__td_verror’
>    __td_verror((td)->parent, (err), strerror((err)), (func)); \
>    ^~~~~~~~~~~
> filesetup.c:1743:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, errno, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from fio.h:11,
>                  from filesetup.c:9:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 37 or more bytes (assuming 164) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from engines/filecreate.c:11:
> engines/filecreate.c: In function ‘open_file’:
> engines/../fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 93 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> engines/../fio.h:482:2: note: in expansion of macro ‘__td_verror’
>   __td_verror((td), (err), strerror((err)), (func)); \
>   ^~~~~~~~~~~
> engines/filecreate.c:43:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, e, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from engines/filecreate.c:7:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 44 or more bytes (assuming 171) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from engines/filecreate.c:11:
> engines/../fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 93 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> engines/../fio.h:484:3: note: in expansion of macro ‘__td_verror’
>    __td_verror((td)->parent, (err), strerror((err)), (func)); \
>    ^~~~~~~~~~~
> engines/filecreate.c:43:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, e, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from engines/filecreate.c:7:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 44 or more bytes (assuming 171) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from engines/net.c:21:
> engines/net.c: In function ‘fio_netio_init’:
> engines/../fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 98 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> engines/../fio.h:482:2: note: in expansion of macro ‘__td_verror’
>   __td_verror((td), (err), strerror((err)), (func)); \
>   ^~~~~~~~~~~
> engines/net.c:1044:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, e, str);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from engines/net.c:7:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 39 or more bytes (assuming 166) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from engines/net.c:21:
> engines/../fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 98 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> engines/../fio.h:484:3: note: in expansion of macro ‘__td_verror’
>    __td_verror((td)->parent, (err), strerror((err)), (func)); \
>    ^~~~~~~~~~~
> engines/net.c:1044:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, e, str);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from engines/net.c:7:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 39 or more bytes (assuming 166) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from server.c:26:
> verify-state.h: In function ‘verify_state_gen_name.constprop’:
> verify-state.h:104:26: warning: ‘%s’ directive output may be truncated writing up to 4095 bytes into a region of size between 128 and 255 [-Wformat-truncation=]
>   snprintf(out, size, "%s-%s-%d-verify.state", prefix, ename, num);
>                           ^~                           ~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from server.c:1:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output between 17 and 4249 bytes into a destination of size 256
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from engines/falloc.c:15:
> engines/falloc.c: In function ‘open_file’:
> engines/../fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 97 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> engines/../fio.h:482:2: note: in expansion of macro ‘__td_verror’
>   __td_verror((td), (err), strerror((err)), (func)); \
>   ^~~~~~~~~~~
> engines/falloc.c:45:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, e, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from engines/falloc.c:11:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 40 or more bytes (assuming 167) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from engines/falloc.c:15:
> engines/../fio.h:471:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 97 [-Wformat-truncation=]
>     snprintf(td->verror, sizeof(td->verror), "file:%s:%d, func=%s, error=%s", __FILE__, __LINE__, (func), (msg));  \
>                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      ~~~~~~
> engines/../fio.h:484:3: note: in expansion of macro ‘__td_verror’
>    __td_verror((td)->parent, (err), strerror((err)), (func)); \
>    ^~~~~~~~~~~
> engines/falloc.c:45:3: note: in expansion of macro ‘td_verror’
>    td_verror(td, e, buf);
>    ^~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from engines/falloc.c:11:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output 40 or more bytes (assuming 167) into a destination of size 128
>    return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         __bos (__s), __fmt, __va_arg_pack ());
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> diskutil.c: In function ‘__init_per_file_disk_util’:
> diskutil.c:245:25: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 0 and 4095 [-Wformat-overflow=]
>    sprintf(temppath, "%s/%s", slavesdir, dirent->d_name);
>                          ^~
> In file included from /usr/include/stdio.h:862,
>                  from diskutil.c:1:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 2 and 4352 bytes into a destination of size 4096
>    return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        __bos (__s), __fmt, __va_arg_pack ());
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> diskutil.c:258:25: warning: ‘%s’ directive writing up to 4095 bytes into a region of size between 0 and 4095 [-Wformat-overflow=]
>    sprintf(temppath, "%s/%s/dev", slavesdir, slavepath);
>                          ^~                  ~~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from diskutil.c:1:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 6 and 8196 bytes into a destination of size 4096
>    return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        __bos (__s), __fmt, __va_arg_pack ());
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> diskutil.c:260:26: warning: ‘%s’ directive writing up to 4095 bytes into a region of size between 0 and 4095 [-Wformat-overflow=]
>     sprintf(temppath, "%s/%s/device/dev", slavesdir, slavepath);
>                           ^~                         ~~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from diskutil.c:1:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 13 and 8203 bytes into a destination of size 4096
>    return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        __bos (__s), __fmt, __va_arg_pack ());
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> diskutil.c:274:25: warning: ‘%s’ directive writing up to 4095 bytes into a region of size between 0 and 4095 [-Wformat-overflow=]
>    sprintf(temppath, "%s/%s", slavesdir, slavepath);
>                          ^~              ~~~~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from diskutil.c:1:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 2 and 8192 bytes into a destination of size 4096
>    return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        __bos (__s), __fmt, __va_arg_pack ());
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> --
> Jens Axboe
>
> --
> To unsubscribe from this list: send the line "unsubscribe fio" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux