From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Subject: GCC 7 warnings
Date: Mon, 10 Apr 2017 11:03:23 -0400
Message-ID: <dd7e5c64-86ec-9e96-e682-a57d1cb9bcc2@2ndquadrant.com> (raw)
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-hackers>
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...
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachments:gcc-7-warnings.txt (text/plain, 25.1K) download
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 (invalid/octet-stream, 0B) download
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: peter.eisentraut@2ndquadrant.com
Subject: Re: GCC 7 warnings
In-Reply-To: <dd7e5c64-86ec-9e96-e682-a57d1cb9bcc2@2ndquadrant.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox