The release of GCC 7 is approaching [0], and the number of warnings in PostgreSQL has gone up since we last looked [1]. Output attached. (My version is 7.0.1 20170408.)
Most of the issues have to do with concatenating two or more strings of potential size MAXPGPATH into another buffer of size MAXPGPATH, which could lead to truncation. Possible fixes: a) Ignore, hoping GCC will change before final release. (unlikely at this point) b) Add compiler option to disable this particular warning, worry about it later. (Might be an option for backpatching.) c) Expand the target buffer sizes until the warning goes away. (Sample patch attached.) d) Replace most of the problematic code with psprintf() and dynamically sized buffers. Comments? [0]: https://gcc.gnu.org/ml/gcc/2017-03/msg00066.html [1]: https://www.postgresql.org/message-id/CAFj8pRA=xV0_-aDF5UtGVY8HGvg+ovA_js_P8z4jLHxvX0Wa=a...@mail.gmail.com -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
In file included from /usr/include/stdio.h:498:0,
from ../../src/include/c.h:81,
from ../../src/include/postgres_fe.h:25,
from file_utils.c:15:
file_utils.c: In function 'walkdir.constprop':
file_utils.c:177:32: warning: '__builtin_snprintf' output may be truncated
before the last format character [-Wformat-truncation=]
snprintf(subpath, MAXPGPATH, "%s/%s", path, de->d_name);
^
file_utils.c:177:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(subpath, MAXPGPATH, "%s/%s", path, de->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../src/include/c.h:81,
from ../../src/include/postgres.h:47,
from pgtz.c:13:
pgtz.c: In function 'pg_tzenumerate_next':
pgtz.c:432:33: warning: '__builtin_snprintf' output may be truncated before the
last format character [-Wformat-truncation=]
snprintf(fullname, MAXPGPATH, "%s/%s",
^
pgtz.c:432:3: note: '__builtin_snprintf' output 2 or more bytes (assuming 1025)
into a destination of size 1024
snprintf(fullname, MAXPGPATH, "%s/%s",
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from rewriteheap.c:103:
rewriteheap.c: In function 'CheckPointLogicalRewriteHeap':
rewriteheap.c:1237:29: warning: '%s' directive output may be truncated writing
up to 1023 bytes into a region of size 1004 [-Wformat-truncation=]
snprintf(path, MAXPGPATH, "pg_logical/mappings/%s", mapping_de->d_name);
^
rewriteheap.c:1237:3: note: '__builtin_snprintf' output between 21 and 1044
bytes into a destination of size 1024
snprintf(path, MAXPGPATH, "pg_logical/mappings/%s", mapping_de->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from xlog.c:15:
xlog.c: In function 'do_pg_start_backup':
xlog.c:10403:41: warning: '%s' directive output may be truncated writing up to
1023 bytes into a region of size 1014 [-Wformat-truncation=]
snprintf(fullpath, sizeof(fullpath), "pg_tblspc/%s", de->d_name);
^
xlog.c:10403:4: note: '__builtin_snprintf' output between 11 and 1034 bytes
into a destination of size 1024
snprintf(fullpath, sizeof(fullpath), "pg_tblspc/%s", de->d_name);
^
xlog.c: In function 'do_pg_stop_backup':
../../../../src/include/access/xlog_internal.h:131:20: warning: '%s' directive
output may be truncated writing up to 1023 bytes into a region of size 1017
[-Wformat-truncation=]
#define XLOGDIR "pg_wal"
^
xlog.c:4123:31: note: in expansion of macro 'XLOGDIR'
snprintf(path, MAXPGPATH, XLOGDIR "/%s", xlde->d_name);
^~~~~~~
In file included from xlog.c:35:0:
../../../../src/include/access/xlog_internal.h:203:38: note: format string is
defined here
snprintf(path, MAXPGPATH, XLOGDIR "/%08X%08X%08X.%08X.backup", tli, \
^~
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from xlog.c:15:
xlog.c:4123:5: note: '__builtin_snprintf' output between 8 and 1031 bytes into
a destination of size 1024
snprintf(path, MAXPGPATH, XLOGDIR "/%s", xlde->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../src/include/c.h:81,
from ../../../src/include/postgres.h:47,
from pgstat.c:19:
pgstat.c: In function 'pgstat_reset_remove_files':
pgstat.c:639:30: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(fname, MAXPGPATH, "%s/%s", directory,
^
pgstat.c:639:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(fname, MAXPGPATH, "%s/%s", directory,
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from reorderbuffer.c:48:
reorderbuffer.c: In function 'StartupReorderBuffer':
reorderbuffer.c:2630:17: warning: '%s' directive writing up to 1023 bytes into
a region of size 1012 [-Wformat-overflow=]
sprintf(path, "pg_replslot/%s", logical_de->d_name);
^
reorderbuffer.c:2630:3: note: '__builtin___sprintf_chk' output between 13 and
1036 bytes into a destination of size 1024
sprintf(path, "pg_replslot/%s", logical_de->d_name);
^
reorderbuffer.c:2646:19: warning: '%s' directive writing up to 1023 bytes into
a region of size 1012 [-Wformat-overflow=]
sprintf(path, "pg_replslot/%s/%s", logical_de->d_name,
^
reorderbuffer.c:2646:5: note: '__builtin___sprintf_chk' output between 14 and
2060 bytes into a destination of size 1024
sprintf(path, "pg_replslot/%s/%s", logical_de->d_name,
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from snapbuild.c:107:
snapbuild.c: In function 'CheckPointSnapBuild':
snapbuild.c:1898:29: warning: '%s' directive output may be truncated writing up
to 1023 bytes into a region of size 1003 [-Wformat-truncation=]
snprintf(path, MAXPGPATH, "pg_logical/snapshots/%s", snap_de->d_name);
^
snapbuild.c:1898:3: note: '__builtin_snprintf' output between 22 and 1045 bytes
into a destination of size 1024
snprintf(path, MAXPGPATH, "pg_logical/snapshots/%s", snap_de->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../src/include/c.h:81,
from ../../../src/include/postgres.h:47,
from basebackup.c:13:
basebackup.c: In function 'sendDir':
basebackup.c:1014:32: warning: '__builtin_snprintf' output may be truncated
before the last format character [-Wformat-truncation=]
snprintf(pathbuf, MAXPGPATH, "%s/%s", path, de->d_name);
^
basebackup.c:1014:3: note: '__builtin_snprintf' output 2 or more bytes
(assuming 1025) into a destination of size 1024
snprintf(pathbuf, MAXPGPATH, "%s/%s", path, de->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../src/include/c.h:81,
from ../../../src/include/postgres.h:47,
from slot.c:37:
slot.c: In function 'StartupReplicationSlots':
slot.c:1032:29: warning: '%s' directive output may be truncated writing up to
1023 bytes into a region of size 1012 [-Wformat-truncation=]
snprintf(path, MAXPGPATH, "pg_replslot/%s", replication_de->d_name);
^
slot.c:1032:3: note: '__builtin_snprintf' output between 13 and 1036 bytes into
a destination of size 1024
snprintf(path, MAXPGPATH, "pg_replslot/%s", replication_de->d_name);
^
slot.c:1271:16: warning: '%s' directive writing up to 1023 bytes into a region
of size 1012 [-Wformat-overflow=]
sprintf(path, "pg_replslot/%s/state.tmp", name);
^
slot.c:1271:2: note: '__builtin___sprintf_chk' output between 23 and 1046 bytes
into a destination of size 1024
sprintf(path, "pg_replslot/%s/state.tmp", name);
^
slot.c:1277:16: warning: '%s' directive writing up to 1023 bytes into a region
of size 1012 [-Wformat-overflow=]
sprintf(path, "pg_replslot/%s/state", name);
^
slot.c:1277:2: note: '__builtin___sprintf_chk' output between 19 and 1042 bytes
into a destination of size 1024
sprintf(path, "pg_replslot/%s/state", name);
^
slot.c:1388:17: warning: '%s' directive writing up to 1023 bytes into a region
of size 1012 [-Wformat-overflow=]
sprintf(path, "pg_replslot/%s", name);
^
slot.c:1388:3: note: '__builtin___sprintf_chk' output between 13 and 1036 bytes
into a destination of size 1024
sprintf(path, "pg_replslot/%s", name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from fd.c:59:
fd.c: In function 'RemovePgTempFilesInDir':
fd.c:2775:38: warning: '__builtin_snprintf' output may be truncated before the
last format character [-Wformat-truncation=]
snprintf(rm_path, sizeof(rm_path), "%s/%s",
^
fd.c:2775:3: note: '__builtin_snprintf' output 2 or more bytes (assuming 1025)
into a destination of size 1024
snprintf(rm_path, sizeof(rm_path), "%s/%s",
^
fd.c: In function 'RemovePgTempRelationFiles':
fd.c:2824:48: warning: '__builtin_snprintf' output may be truncated before the
last format character [-Wformat-truncation=]
snprintf(dbspace_path, sizeof(dbspace_path), "%s/%s",
^
fd.c:2824:3: note: '__builtin_snprintf' output 2 or more bytes (assuming 1025)
into a destination of size 1024
snprintf(dbspace_path, sizeof(dbspace_path), "%s/%s",
^
fd.c:2855:38: warning: '__builtin_snprintf' output may be truncated before the
last format character [-Wformat-truncation=]
snprintf(rm_path, sizeof(rm_path), "%s/%s",
^
fd.c:2855:3: note: '__builtin_snprintf' output 2 or more bytes (assuming 1025)
into a destination of size 1024
snprintf(rm_path, sizeof(rm_path), "%s/%s",
^
fd.c: In function 'walkdir':
fd.c:3035:32: warning: '__builtin_snprintf' output may be truncated before the
last format character [-Wformat-truncation=]
snprintf(subpath, MAXPGPATH, "%s/%s", path, de->d_name);
^
fd.c:3035:3: note: '__builtin_snprintf' output 2 or more bytes (assuming 1025)
into a destination of size 1024
snprintf(subpath, MAXPGPATH, "%s/%s", path, de->d_name);
^
fd.c: In function 'RemovePgTempFiles':
fd.c:2730:42: warning: '%s' directive output may be truncated writing up to
1023 bytes into a region of size 1014 [-Wformat-truncation=]
snprintf(temp_path, sizeof(temp_path), "pg_tblspc/%s/%s/%s",
^
fd.c:2730:3: note: '__builtin_snprintf' output between 37 and 1060 bytes into a
destination of size 1024
snprintf(temp_path, sizeof(temp_path), "pg_tblspc/%s/%s/%s",
^
fd.c:2734:42: warning: '%s' directive output may be truncated writing up to
1023 bytes into a region of size 1014 [-Wformat-truncation=]
snprintf(temp_path, sizeof(temp_path), "pg_tblspc/%s/%s",
^
fd.c:2734:3: note: '__builtin_snprintf' output between 27 and 1050 bytes into a
destination of size 1024
snprintf(temp_path, sizeof(temp_path), "pg_tblspc/%s/%s",
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from copydir.c:19:
copydir.c: In function 'copydir':
copydir.c:66:33: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(fromfile, MAXPGPATH, "%s/%s", fromdir, xlde->d_name);
^
copydir.c:66:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(fromfile, MAXPGPATH, "%s/%s", fromdir, xlde->d_name);
^
copydir.c:67:31: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(tofile, MAXPGPATH, "%s/%s", todir, xlde->d_name);
^
copydir.c:67:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(tofile, MAXPGPATH, "%s/%s", todir, xlde->d_name);
^
copydir.c:106:31: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(tofile, MAXPGPATH, "%s/%s", todir, xlde->d_name);
^
copydir.c:106:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(tofile, MAXPGPATH, "%s/%s", todir, xlde->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from reinit.c:15:
reinit.c: In function 'ResetUnloggedRelationsInTablespaceDir':
reinit.c:134:48: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(dbspace_path, sizeof(dbspace_path), "%s/%s",
^
reinit.c:134:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(dbspace_path, sizeof(dbspace_path), "%s/%s",
^
reinit.c:264:40: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(rm_path, sizeof(rm_path), "%s/%s",
^
reinit.c:264:5: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(rm_path, sizeof(rm_path), "%s/%s",
^
reinit.c:324:39: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(srcpath, sizeof(srcpath), "%s/%s",
^
reinit.c:324:4: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(srcpath, sizeof(srcpath), "%s/%s",
^
reinit.c: In function 'ResetUnloggedRelations':
reinit.c:87:42: warning: '%s' directive output may be truncated writing up to
1023 bytes into a region of size 1014 [-Wformat-truncation=]
snprintf(temp_path, sizeof(temp_path), "pg_tblspc/%s/%s",
^
reinit.c:87:3: note: '__builtin_snprintf' output between 27 and 1050 bytes into
a destination of size 1024
snprintf(temp_path, sizeof(temp_path), "pg_tblspc/%s/%s",
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from dsm.c:27:
dsm.c: In function 'dsm_cleanup_for_mmap':
../../../../src/include/storage/dsm_impl.h:51:29: warning: '%s' directive
output may be truncated writing up to 1023 bytes into a region of size 1012
[-Wformat-truncation=]
#define PG_DYNSHMEM_DIR "pg_dynshmem"
^
dsm.c:312:29: note: in expansion of macro 'PG_DYNSHMEM_DIR'
snprintf(buf, MAXPGPATH, PG_DYNSHMEM_DIR "/%s", dent->d_name);
^~~~~~~~~~~~~~~
dsm.c:312:47: note: format string is defined here
snprintf(buf, MAXPGPATH, PG_DYNSHMEM_DIR "/%s", dent->d_name);
^~
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from dsm.c:27:
dsm.c:312:4: note: '__builtin_snprintf' output between 13 and 1036 bytes into a
destination of size 1024
snprintf(buf, MAXPGPATH, PG_DYNSHMEM_DIR "/%s", dent->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from dbsize.c:12:
dbsize.c: In function 'db_dir_size':
dbsize.c:61:33: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(filename, MAXPGPATH, "%s/%s", path, direntry->d_name);
^
dbsize.c:61:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(filename, MAXPGPATH, "%s/%s", path, direntry->d_name);
^
dbsize.c: In function 'calculate_database_size':
dbsize.c:127:33: warning: '%s' directive output may be truncated writing up to
1023 bytes into a region of size 1014 [-Wformat-truncation=]
snprintf(pathname, MAXPGPATH, "pg_tblspc/%s/%s/%u",
^
dbsize.c:127:3: note: '__builtin_snprintf' output between 29 and 1061 bytes
into a destination of size 1024
snprintf(pathname, MAXPGPATH, "pg_tblspc/%s/%s/%u",
^
dbsize.c: In function 'calculate_tablespace_size':
dbsize.c:218:33: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(pathname, MAXPGPATH, "%s/%s", tblspcPath, direntry->d_name);
^
dbsize.c:218:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(pathname, MAXPGPATH, "%s/%s", tblspcPath, direntry->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from genfile.c:16:
genfile.c: In function 'pg_ls_dir_files':
genfile.c:534:29: warning: '__builtin_snprintf' output may be truncated before
the last format character [-Wformat-truncation=]
snprintf(path, MAXPGPATH, "%s/%s", fctx->location, de->d_name);
^
genfile.c:534:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(path, MAXPGPATH, "%s/%s", fctx->location, de->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from relcache.c:27:
relcache.c: In function 'RelationCacheInitFileRemoveInDir':
relcache.c:6135:49: warning: '/' directive output may be truncated writing 1
byte into a region of size between 0 and 1023 [-Wformat-truncation=]
snprintf(initfilename, sizeof(initfilename), "%s/%s/%s",
^
relcache.c:6135:4: note: '__builtin_snprintf' output 19 or more bytes (assuming
1042) into a destination of size 1024
snprintf(initfilename, sizeof(initfilename), "%s/%s/%s",
^
relcache.c: In function 'RelationCacheInitFileRemove':
relcache.c:6104:33: warning: '%s' directive output may be truncated writing up
to 1023 bytes into a region of size 1014 [-Wformat-truncation=]
snprintf(path, sizeof(path), "%s/%s/%s",
^
relcache.c:6104:4: note: '__builtin_snprintf' output between 27 and 1050 bytes
into a destination of size 1024
snprintf(path, sizeof(path), "%s/%s/%s",
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from elog.c:55:
elog.c: In function 'setup_formatted_log_time':
elog.c:2252:17: warning: '%03d' directive writing between 3 and 8 bytes into a
region of size 7 [-Wformat-overflow=]
sprintf(msbuf, ".%03d", (int) (saved_timeval.tv_usec / 1000));
^
elog.c:2252:17: note: directive argument in the range [-2147483, 2147483]
elog.c:2252:2: note: '__builtin___sprintf_chk' output between 5 and 10 bytes
into a destination of size 8
sprintf(msbuf, ".%03d", (int) (saved_timeval.tv_usec / 1000));
^
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from snapmgr.c:46:
snapmgr.c: In function 'DeleteAllExportedSnapshotFiles':
snapmgr.c:213:29: warning: '%s' directive output may be truncated writing up to
1023 bytes into a region of size 1011 [-Wformat-truncation=]
#define SNAPSHOT_EXPORT_DIR "pg_snapshots"
^
snapmgr.c:1602:28: note: in expansion of macro 'SNAPSHOT_EXPORT_DIR'
snprintf(buf, MAXPGPATH, SNAPSHOT_EXPORT_DIR "/%s", s_de->d_name);
^~~~~~~~~~~~~~~~~~~
snapmgr.c:1602:50: note: format string is defined here
snprintf(buf, MAXPGPATH, SNAPSHOT_EXPORT_DIR "/%s", s_de->d_name);
^~
In file included from /usr/include/stdio.h:498:0,
from ../../../../src/include/c.h:81,
from ../../../../src/include/postgres.h:47,
from snapmgr.c:46:
snapmgr.c:1602:3: note: '__builtin_snprintf' output between 14 and 1037 bytes
into a destination of size 1024
snprintf(buf, MAXPGPATH, SNAPSHOT_EXPORT_DIR "/%s", s_de->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../src/include/c.h:81,
from ../../../src/include/postgres_fe.h:25,
from pg_archivecleanup.c:13:
pg_archivecleanup.c: In function 'CleanupPriorWALFiles':
pg_archivecleanup.c:136:38: warning: '__builtin_snprintf' output may be
truncated before the last format character [-Wformat-truncation=]
snprintf(WALFilePath, MAXPGPATH, "%s/%s",
^
pg_archivecleanup.c:136:5: note: '__builtin_snprintf' output 2 or more bytes
(assuming 1025) into a destination of size 1024
snprintf(WALFilePath, MAXPGPATH, "%s/%s",
^
In file included from /usr/include/stdio.h:498:0,
from ../../../src/include/c.h:81,
from ../../../src/include/postgres_fe.h:25,
from pg_receivewal.c:15:
pg_receivewal.c: In function 'FindStreamingStart':
pg_receivewal.c:272:41: warning: '__builtin_snprintf' output may be truncated
before the last format character [-Wformat-truncation=]
snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name);
^
pg_receivewal.c:272:4: note: '__builtin_snprintf' output 2 or more bytes
(assuming 1025) into a destination of size 1024
snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name);
^
pg_receivewal.c:249:41: warning: '__builtin_snprintf' output may be truncated
before the last format character [-Wformat-truncation=]
snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name);
^
pg_receivewal.c:249:4: note: '__builtin_snprintf' output 2 or more bytes
(assuming 1025) into a destination of size 1024
snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../src/include/c.h:81,
from ../../../src/include/postgres.h:47,
from pg_resetwal.c:38:
pg_resetwal.c: In function 'KillExistingXLOG':
pg_resetwal.c:976:30: warning: '%s' directive output may be truncated writing
up to 1023 bytes into a region of size 1017 [-Wformat-truncation=]
snprintf(path, MAXPGPATH, "%s/%s", XLOGDIR, xlde->d_name);
^
pg_resetwal.c:976:4: note: '__builtin_snprintf' output between 8 and 1031 bytes
into a destination of size 1024
snprintf(path, MAXPGPATH, "%s/%s", XLOGDIR, xlde->d_name);
^
pg_resetwal.c: In function 'KillExistingArchiveStatus':
pg_resetwal.c:1030:30: warning: '%s' directive output may be truncated writing
up to 1023 bytes into a region of size 1002 [-Wformat-truncation=]
snprintf(path, MAXPGPATH, "%s/%s", ARCHSTATDIR, xlde->d_name);
^
pg_resetwal.c:1030:4: note: '__builtin_snprintf' output between 23 and 1046
bytes into a destination of size 1024
snprintf(path, MAXPGPATH, "%s/%s", ARCHSTATDIR, xlde->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../../src/include/c.h:81,
from ../../../src/include/postgres_fe.h:25,
from copy_fetch.c:10:
copy_fetch.c: In function 'recurse_dir':
copy_fetch.c:75:33: warning: '__builtin_snprintf' output may be truncated
before the last format character [-Wformat-truncation=]
snprintf(fullpath, MAXPGPATH, "%s/%s", fullparentpath, xlde->d_name);
^
copy_fetch.c:75:3: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(fullpath, MAXPGPATH, "%s/%s", fullparentpath, xlde->d_name);
^
copy_fetch.c:96:30: warning: '__builtin_snprintf' output may be truncated
before the last format character [-Wformat-truncation=]
snprintf(path, MAXPGPATH, "%s/%s", parentpath, xlde->d_name);
^
copy_fetch.c:96:4: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(path, MAXPGPATH, "%s/%s", parentpath, xlde->d_name);
^
In file included from /usr/include/stdio.h:498:0,
from ../../src/include/c.h:81,
from ../../src/include/postgres_fe.h:25,
from pg_standby.c:24:
pg_standby.c: In function 'main':
pg_standby.c:264:39: warning: '__builtin_snprintf' output may be truncated
before the last format character [-Wformat-truncation=]
snprintf(WALFilePath, MAXPGPATH, "%s/%s", archiveLocation, xlde->d_name);
^
pg_standby.c:264:6: note: '__builtin_snprintf' output 2 or more bytes (assuming
1025) into a destination of size 1024
snprintf(WALFilePath, MAXPGPATH, "%s/%s", archiveLocation, xlde->d_name);
^
0001-Fix-various-new-warnings-from-gcc-7.patch
Description: invalid/octet-stream
-- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
