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. 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