Fix new warnings from GCC 7

This addresses the new warning types -Wformat-truncation
-Wformat-overflow that are part of -Wall, via -Wformat, in GCC 7.
This commit is contained in:
Peter Eisentraut 2017-04-11 14:13:31 -04:00
parent 0e8286d354
commit 6275f5d28a
23 changed files with 68 additions and 68 deletions

View File

@ -57,7 +57,7 @@ char *xlogFilePath; /* where we are going to restore to */
char *nextWALFileName; /* the file we need to get from archive */ char *nextWALFileName; /* the file we need to get from archive */
char *restartWALFileName; /* the file from which we can restart restore */ char *restartWALFileName; /* the file from which we can restart restore */
char *priorWALFileName; /* the file we need to get from archive */ char *priorWALFileName; /* the file we need to get from archive */
char WALFilePath[MAXPGPATH]; /* the file path including archive */ char WALFilePath[MAXPGPATH * 2]; /* the file path including archive */
char restoreCommand[MAXPGPATH]; /* run this to restore */ char restoreCommand[MAXPGPATH]; /* run this to restore */
char exclusiveCleanupFileName[MAXFNAMELEN]; /* the file we need to char exclusiveCleanupFileName[MAXFNAMELEN]; /* the file we need to
* get from archive */ * get from archive */
@ -259,9 +259,9 @@ CustomizableCleanupPriorWALFiles(void)
strcmp(xlde->d_name + 8, exclusiveCleanupFileName + 8) < 0) strcmp(xlde->d_name + 8, exclusiveCleanupFileName + 8) < 0)
{ {
#ifdef WIN32 #ifdef WIN32
snprintf(WALFilePath, MAXPGPATH, "%s\\%s", archiveLocation, xlde->d_name); snprintf(WALFilePath, sizeof(WALFilePath), "%s\\%s", archiveLocation, xlde->d_name);
#else #else
snprintf(WALFilePath, MAXPGPATH, "%s/%s", archiveLocation, xlde->d_name); snprintf(WALFilePath, sizeof(WALFilePath), "%s/%s", archiveLocation, xlde->d_name);
#endif #endif
if (debug) if (debug)

View File

@ -1203,7 +1203,7 @@ CheckPointLogicalRewriteHeap(void)
XLogRecPtr redo; XLogRecPtr redo;
DIR *mappings_dir; DIR *mappings_dir;
struct dirent *mapping_de; struct dirent *mapping_de;
char path[MAXPGPATH]; char path[MAXPGPATH + 20];
/* /*
* We start of with a minimum of the last redo pointer. No new decoding * We start of with a minimum of the last redo pointer. No new decoding
@ -1234,7 +1234,7 @@ CheckPointLogicalRewriteHeap(void)
strcmp(mapping_de->d_name, "..") == 0) strcmp(mapping_de->d_name, "..") == 0)
continue; continue;
snprintf(path, MAXPGPATH, "pg_logical/mappings/%s", mapping_de->d_name); snprintf(path, sizeof(path), "pg_logical/mappings/%s", mapping_de->d_name);
if (lstat(path, &statbuf) == 0 && !S_ISREG(statbuf.st_mode)) if (lstat(path, &statbuf) == 0 && !S_ISREG(statbuf.st_mode))
continue; continue;

View File

@ -4102,7 +4102,7 @@ CleanupBackupHistory(void)
{ {
DIR *xldir; DIR *xldir;
struct dirent *xlde; struct dirent *xlde;
char path[MAXPGPATH]; char path[MAXPGPATH + sizeof(XLOGDIR)];
xldir = AllocateDir(XLOGDIR); xldir = AllocateDir(XLOGDIR);
if (xldir == NULL) if (xldir == NULL)
@ -4120,7 +4120,7 @@ CleanupBackupHistory(void)
ereport(DEBUG2, ereport(DEBUG2,
(errmsg("removing transaction log backup history file \"%s\"", (errmsg("removing transaction log backup history file \"%s\"",
xlde->d_name))); xlde->d_name)));
snprintf(path, MAXPGPATH, XLOGDIR "/%s", xlde->d_name); snprintf(path, sizeof(path), XLOGDIR "/%s", xlde->d_name);
unlink(path); unlink(path);
XLogArchiveCleanup(xlde->d_name); XLogArchiveCleanup(xlde->d_name);
} }
@ -10389,7 +10389,7 @@ do_pg_start_backup(const char *backupidstr, bool fast, TimeLineID *starttli_p,
/* Collect information about all tablespaces */ /* Collect information about all tablespaces */
while ((de = ReadDir(tblspcdir, "pg_tblspc")) != NULL) while ((de = ReadDir(tblspcdir, "pg_tblspc")) != NULL)
{ {
char fullpath[MAXPGPATH]; char fullpath[MAXPGPATH + 10];
char linkpath[MAXPGPATH]; char linkpath[MAXPGPATH];
char *relpath = NULL; char *relpath = NULL;
int rllen; int rllen;

View File

@ -606,7 +606,7 @@ pgstat_reset_remove_files(const char *directory)
{ {
DIR *dir; DIR *dir;
struct dirent *entry; struct dirent *entry;
char fname[MAXPGPATH]; char fname[MAXPGPATH * 2];
dir = AllocateDir(directory); dir = AllocateDir(directory);
while ((entry = ReadDir(dir, directory)) != NULL) while ((entry = ReadDir(dir, directory)) != NULL)
@ -636,7 +636,7 @@ pgstat_reset_remove_files(const char *directory)
strcmp(entry->d_name + nchars, "stat") != 0) strcmp(entry->d_name + nchars, "stat") != 0)
continue; continue;
snprintf(fname, MAXPGPATH, "%s/%s", directory, snprintf(fname, sizeof(fname), "%s/%s", directory,
entry->d_name); entry->d_name);
unlink(fname); unlink(fname);
} }

View File

@ -959,7 +959,7 @@ sendDir(char *path, int basepathlen, bool sizeonly, List *tablespaces,
{ {
DIR *dir; DIR *dir;
struct dirent *de; struct dirent *de;
char pathbuf[MAXPGPATH]; char pathbuf[MAXPGPATH * 2];
struct stat statbuf; struct stat statbuf;
int64 size = 0; int64 size = 0;
@ -1011,7 +1011,7 @@ sendDir(char *path, int basepathlen, bool sizeonly, List *tablespaces,
if (excludeFound) if (excludeFound)
continue; continue;
snprintf(pathbuf, MAXPGPATH, "%s/%s", path, de->d_name); snprintf(pathbuf, sizeof(pathbuf), "%s/%s", path, de->d_name);
/* Skip pg_control here to back up it last */ /* Skip pg_control here to back up it last */
if (strcmp(pathbuf, "./global/pg_control") == 0) if (strcmp(pathbuf, "./global/pg_control") == 0)

View File

@ -2613,7 +2613,7 @@ StartupReorderBuffer(void)
while ((logical_de = ReadDir(logical_dir, "pg_replslot")) != NULL) while ((logical_de = ReadDir(logical_dir, "pg_replslot")) != NULL)
{ {
struct stat statbuf; struct stat statbuf;
char path[MAXPGPATH]; char path[MAXPGPATH * 2 + 12];
if (strcmp(logical_de->d_name, ".") == 0 || if (strcmp(logical_de->d_name, ".") == 0 ||
strcmp(logical_de->d_name, "..") == 0) strcmp(logical_de->d_name, "..") == 0)

View File

@ -1868,7 +1868,7 @@ CheckPointSnapBuild(void)
XLogRecPtr redo; XLogRecPtr redo;
DIR *snap_dir; DIR *snap_dir;
struct dirent *snap_de; struct dirent *snap_de;
char path[MAXPGPATH]; char path[MAXPGPATH + 21];
/* /*
* We start off with a minimum of the last redo pointer. No new replication * We start off with a minimum of the last redo pointer. No new replication
@ -1895,7 +1895,7 @@ CheckPointSnapBuild(void)
strcmp(snap_de->d_name, "..") == 0) strcmp(snap_de->d_name, "..") == 0)
continue; continue;
snprintf(path, MAXPGPATH, "pg_logical/snapshots/%s", snap_de->d_name); snprintf(path, sizeof(path), "pg_logical/snapshots/%s", snap_de->d_name);
if (lstat(path, &statbuf) == 0 && !S_ISREG(statbuf.st_mode)) if (lstat(path, &statbuf) == 0 && !S_ISREG(statbuf.st_mode))
{ {

View File

@ -1023,13 +1023,13 @@ StartupReplicationSlots(void)
while ((replication_de = ReadDir(replication_dir, "pg_replslot")) != NULL) while ((replication_de = ReadDir(replication_dir, "pg_replslot")) != NULL)
{ {
struct stat statbuf; struct stat statbuf;
char path[MAXPGPATH]; char path[MAXPGPATH + 12];
if (strcmp(replication_de->d_name, ".") == 0 || if (strcmp(replication_de->d_name, ".") == 0 ||
strcmp(replication_de->d_name, "..") == 0) strcmp(replication_de->d_name, "..") == 0)
continue; continue;
snprintf(path, MAXPGPATH, "pg_replslot/%s", replication_de->d_name); snprintf(path, sizeof(path), "pg_replslot/%s", replication_de->d_name);
/* we're only creating directories here, skip if it's not our's */ /* we're only creating directories here, skip if it's not our's */
if (lstat(path, &statbuf) == 0 && !S_ISDIR(statbuf.st_mode)) if (lstat(path, &statbuf) == 0 && !S_ISDIR(statbuf.st_mode))
@ -1259,7 +1259,7 @@ RestoreSlotFromDisk(const char *name)
{ {
ReplicationSlotOnDisk cp; ReplicationSlotOnDisk cp;
int i; int i;
char path[MAXPGPATH]; char path[MAXPGPATH + 22];
int fd; int fd;
bool restored = false; bool restored = false;
int readBytes; int readBytes;

View File

@ -38,8 +38,8 @@ copydir(char *fromdir, char *todir, bool recurse)
{ {
DIR *xldir; DIR *xldir;
struct dirent *xlde; struct dirent *xlde;
char fromfile[MAXPGPATH]; char fromfile[MAXPGPATH * 2];
char tofile[MAXPGPATH]; char tofile[MAXPGPATH * 2];
if (mkdir(todir, S_IRWXU) != 0) if (mkdir(todir, S_IRWXU) != 0)
ereport(ERROR, ereport(ERROR,
@ -63,8 +63,8 @@ copydir(char *fromdir, char *todir, bool recurse)
strcmp(xlde->d_name, "..") == 0) strcmp(xlde->d_name, "..") == 0)
continue; continue;
snprintf(fromfile, MAXPGPATH, "%s/%s", fromdir, xlde->d_name); snprintf(fromfile, sizeof(fromfile), "%s/%s", fromdir, xlde->d_name);
snprintf(tofile, MAXPGPATH, "%s/%s", todir, xlde->d_name); snprintf(tofile, sizeof(tofile), "%s/%s", todir, xlde->d_name);
if (lstat(fromfile, &fst) < 0) if (lstat(fromfile, &fst) < 0)
ereport(ERROR, ereport(ERROR,
@ -103,7 +103,7 @@ copydir(char *fromdir, char *todir, bool recurse)
strcmp(xlde->d_name, "..") == 0) strcmp(xlde->d_name, "..") == 0)
continue; continue;
snprintf(tofile, MAXPGPATH, "%s/%s", todir, xlde->d_name); snprintf(tofile, sizeof(tofile), "%s/%s", todir, xlde->d_name);
/* /*
* We don't need to sync subdirectories here since the recursive * We don't need to sync subdirectories here since the recursive

View File

@ -2705,7 +2705,7 @@ CleanupTempFiles(bool isProcExit)
void void
RemovePgTempFiles(void) RemovePgTempFiles(void)
{ {
char temp_path[MAXPGPATH]; char temp_path[MAXPGPATH + 10 + sizeof(TABLESPACE_VERSION_DIRECTORY) + sizeof(PG_TEMP_FILES_DIR)];
DIR *spc_dir; DIR *spc_dir;
struct dirent *spc_de; struct dirent *spc_de;
@ -2753,7 +2753,7 @@ RemovePgTempFilesInDir(const char *tmpdirname)
{ {
DIR *temp_dir; DIR *temp_dir;
struct dirent *temp_de; struct dirent *temp_de;
char rm_path[MAXPGPATH]; char rm_path[MAXPGPATH * 2];
temp_dir = AllocateDir(tmpdirname); temp_dir = AllocateDir(tmpdirname);
if (temp_dir == NULL) if (temp_dir == NULL)
@ -2794,7 +2794,7 @@ RemovePgTempRelationFiles(const char *tsdirname)
{ {
DIR *ts_dir; DIR *ts_dir;
struct dirent *de; struct dirent *de;
char dbspace_path[MAXPGPATH]; char dbspace_path[MAXPGPATH * 2];
ts_dir = AllocateDir(tsdirname); ts_dir = AllocateDir(tsdirname);
if (ts_dir == NULL) if (ts_dir == NULL)
@ -2835,7 +2835,7 @@ RemovePgTempRelationFilesInDbspace(const char *dbspacedirname)
{ {
DIR *dbspace_dir; DIR *dbspace_dir;
struct dirent *de; struct dirent *de;
char rm_path[MAXPGPATH]; char rm_path[MAXPGPATH * 2];
dbspace_dir = AllocateDir(dbspacedirname); dbspace_dir = AllocateDir(dbspacedirname);
if (dbspace_dir == NULL) if (dbspace_dir == NULL)
@ -3022,7 +3022,7 @@ walkdir(const char *path,
while ((de = ReadDirExtended(dir, path, elevel)) != NULL) while ((de = ReadDirExtended(dir, path, elevel)) != NULL)
{ {
char subpath[MAXPGPATH]; char subpath[MAXPGPATH * 2];
struct stat fst; struct stat fst;
int sret; int sret;
@ -3032,7 +3032,7 @@ walkdir(const char *path,
strcmp(de->d_name, "..") == 0) strcmp(de->d_name, "..") == 0)
continue; continue;
snprintf(subpath, MAXPGPATH, "%s/%s", path, de->d_name); snprintf(subpath, sizeof(subpath), "%s/%s", path, de->d_name);
if (process_symlinks) if (process_symlinks)
sret = stat(subpath, &fst); sret = stat(subpath, &fst);

View File

@ -48,7 +48,7 @@ typedef struct
void void
ResetUnloggedRelations(int op) ResetUnloggedRelations(int op)
{ {
char temp_path[MAXPGPATH]; char temp_path[MAXPGPATH + 10 + sizeof(TABLESPACE_VERSION_DIRECTORY)];
DIR *spc_dir; DIR *spc_dir;
struct dirent *spc_de; struct dirent *spc_de;
MemoryContext tmpctx, MemoryContext tmpctx,
@ -104,7 +104,7 @@ ResetUnloggedRelationsInTablespaceDir(const char *tsdirname, int op)
{ {
DIR *ts_dir; DIR *ts_dir;
struct dirent *de; struct dirent *de;
char dbspace_path[MAXPGPATH]; char dbspace_path[MAXPGPATH * 2];
ts_dir = AllocateDir(tsdirname); ts_dir = AllocateDir(tsdirname);
if (ts_dir == NULL) if (ts_dir == NULL)
@ -145,7 +145,7 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
{ {
DIR *dbspace_dir; DIR *dbspace_dir;
struct dirent *de; struct dirent *de;
char rm_path[MAXPGPATH]; char rm_path[MAXPGPATH * 2];
/* Caller must specify at least one operation. */ /* Caller must specify at least one operation. */
Assert((op & (UNLOGGED_RELATION_CLEANUP | UNLOGGED_RELATION_INIT)) != 0); Assert((op & (UNLOGGED_RELATION_CLEANUP | UNLOGGED_RELATION_INIT)) != 0);
@ -308,7 +308,7 @@ ResetUnloggedRelationsInDbspaceDir(const char *dbspacedirname, int op)
ForkNumber forkNum; ForkNumber forkNum;
int oidchars; int oidchars;
char oidbuf[OIDCHARS + 1]; char oidbuf[OIDCHARS + 1];
char srcpath[MAXPGPATH]; char srcpath[MAXPGPATH * 2];
char dstpath[MAXPGPATH]; char dstpath[MAXPGPATH];
/* Skip anything that doesn't look like a relation data file. */ /* Skip anything that doesn't look like a relation data file. */

View File

@ -307,9 +307,9 @@ dsm_cleanup_for_mmap(void)
if (strncmp(dent->d_name, PG_DYNSHMEM_MMAP_FILE_PREFIX, if (strncmp(dent->d_name, PG_DYNSHMEM_MMAP_FILE_PREFIX,
strlen(PG_DYNSHMEM_MMAP_FILE_PREFIX)) == 0) strlen(PG_DYNSHMEM_MMAP_FILE_PREFIX)) == 0)
{ {
char buf[MAXPGPATH]; char buf[MAXPGPATH + sizeof(PG_DYNSHMEM_DIR)];
snprintf(buf, MAXPGPATH, PG_DYNSHMEM_DIR "/%s", dent->d_name); snprintf(buf, sizeof(buf), PG_DYNSHMEM_DIR "/%s", dent->d_name);
elog(DEBUG2, "removing file \"%s\"", buf); elog(DEBUG2, "removing file \"%s\"", buf);

View File

@ -41,7 +41,7 @@ db_dir_size(const char *path)
int64 dirsize = 0; int64 dirsize = 0;
struct dirent *direntry; struct dirent *direntry;
DIR *dirdesc; DIR *dirdesc;
char filename[MAXPGPATH]; char filename[MAXPGPATH * 2];
dirdesc = AllocateDir(path); dirdesc = AllocateDir(path);
@ -58,7 +58,7 @@ db_dir_size(const char *path)
strcmp(direntry->d_name, "..") == 0) strcmp(direntry->d_name, "..") == 0)
continue; continue;
snprintf(filename, MAXPGPATH, "%s/%s", path, direntry->d_name); snprintf(filename, sizeof(filename), "%s/%s", path, direntry->d_name);
if (stat(filename, &fst) < 0) if (stat(filename, &fst) < 0)
{ {
@ -86,7 +86,7 @@ calculate_database_size(Oid dbOid)
DIR *dirdesc; DIR *dirdesc;
struct dirent *direntry; struct dirent *direntry;
char dirpath[MAXPGPATH]; char dirpath[MAXPGPATH];
char pathname[MAXPGPATH]; char pathname[MAXPGPATH + 12 + sizeof(TABLESPACE_VERSION_DIRECTORY)];
AclResult aclresult; AclResult aclresult;
/* /*
@ -104,7 +104,7 @@ calculate_database_size(Oid dbOid)
/* Shared storage in pg_global is not counted */ /* Shared storage in pg_global is not counted */
/* Include pg_default storage */ /* Include pg_default storage */
snprintf(pathname, MAXPGPATH, "base/%u", dbOid); snprintf(pathname, sizeof(pathname), "base/%u", dbOid);
totalsize = db_dir_size(pathname); totalsize = db_dir_size(pathname);
/* Scan the non-default tablespaces */ /* Scan the non-default tablespaces */
@ -124,7 +124,7 @@ calculate_database_size(Oid dbOid)
strcmp(direntry->d_name, "..") == 0) strcmp(direntry->d_name, "..") == 0)
continue; continue;
snprintf(pathname, MAXPGPATH, "pg_tblspc/%s/%s/%u", snprintf(pathname, sizeof(pathname), "pg_tblspc/%s/%s/%u",
direntry->d_name, TABLESPACE_VERSION_DIRECTORY, dbOid); direntry->d_name, TABLESPACE_VERSION_DIRECTORY, dbOid);
totalsize += db_dir_size(pathname); totalsize += db_dir_size(pathname);
} }
@ -172,7 +172,7 @@ static int64
calculate_tablespace_size(Oid tblspcOid) calculate_tablespace_size(Oid tblspcOid)
{ {
char tblspcPath[MAXPGPATH]; char tblspcPath[MAXPGPATH];
char pathname[MAXPGPATH]; char pathname[MAXPGPATH * 2];
int64 totalsize = 0; int64 totalsize = 0;
DIR *dirdesc; DIR *dirdesc;
struct dirent *direntry; struct dirent *direntry;
@ -215,7 +215,7 @@ calculate_tablespace_size(Oid tblspcOid)
strcmp(direntry->d_name, "..") == 0) strcmp(direntry->d_name, "..") == 0)
continue; continue;
snprintf(pathname, MAXPGPATH, "%s/%s", tblspcPath, direntry->d_name); snprintf(pathname, sizeof(pathname), "%s/%s", tblspcPath, direntry->d_name);
if (stat(pathname, &fst) < 0) if (stat(pathname, &fst) < 0)
{ {

View File

@ -522,7 +522,7 @@ pg_ls_dir_files(FunctionCallInfo fcinfo, char *dir)
{ {
Datum values[3]; Datum values[3];
bool nulls[3]; bool nulls[3];
char path[MAXPGPATH]; char path[MAXPGPATH * 2];
struct stat attrib; struct stat attrib;
HeapTuple tuple; HeapTuple tuple;
@ -531,7 +531,7 @@ pg_ls_dir_files(FunctionCallInfo fcinfo, char *dir)
continue; continue;
/* Get the file info */ /* Get the file info */
snprintf(path, MAXPGPATH, "%s/%s", fctx->location, de->d_name); snprintf(path, sizeof(path), "%s/%s", fctx->location, de->d_name);
if (stat(path, &attrib) < 0) if (stat(path, &attrib) < 0)
ereport(ERROR, ereport(ERROR,
(errcode_for_file_access(), (errcode_for_file_access(),

View File

@ -6074,7 +6074,7 @@ RelationCacheInitFileRemove(void)
const char *tblspcdir = "pg_tblspc"; const char *tblspcdir = "pg_tblspc";
DIR *dir; DIR *dir;
struct dirent *de; struct dirent *de;
char path[MAXPGPATH]; char path[MAXPGPATH + 10 + sizeof(TABLESPACE_VERSION_DIRECTORY)];
/* /*
* We zap the shared cache file too. In theory it can't get out of sync * We zap the shared cache file too. In theory it can't get out of sync
@ -6116,7 +6116,7 @@ RelationCacheInitFileRemoveInDir(const char *tblspcpath)
{ {
DIR *dir; DIR *dir;
struct dirent *de; struct dirent *de;
char initfilename[MAXPGPATH]; char initfilename[MAXPGPATH * 2];
/* Scan the tablespace directory to find per-database directories */ /* Scan the tablespace directory to find per-database directories */
dir = AllocateDir(tblspcpath); dir = AllocateDir(tblspcpath);

View File

@ -2228,7 +2228,7 @@ static void
setup_formatted_log_time(void) setup_formatted_log_time(void)
{ {
pg_time_t stamp_time; pg_time_t stamp_time;
char msbuf[8]; char msbuf[13];
if (!saved_timeval_set) if (!saved_timeval_set)
{ {

View File

@ -1578,7 +1578,7 @@ XactHasExportedSnapshots(void)
void void
DeleteAllExportedSnapshotFiles(void) DeleteAllExportedSnapshotFiles(void)
{ {
char buf[MAXPGPATH]; char buf[MAXPGPATH + sizeof(SNAPSHOT_EXPORT_DIR)];
DIR *s_dir; DIR *s_dir;
struct dirent *s_de; struct dirent *s_de;
@ -1599,7 +1599,7 @@ DeleteAllExportedSnapshotFiles(void)
strcmp(s_de->d_name, "..") == 0) strcmp(s_de->d_name, "..") == 0)
continue; continue;
snprintf(buf, MAXPGPATH, SNAPSHOT_EXPORT_DIR "/%s", s_de->d_name); snprintf(buf, sizeof(buf), SNAPSHOT_EXPORT_DIR "/%s", s_de->d_name);
/* Again, unlink failure is not worthy of FATAL */ /* Again, unlink failure is not worthy of FATAL */
if (unlink(buf)) if (unlink(buf))
elog(LOG, "could not unlink file \"%s\": %m", buf); elog(LOG, "could not unlink file \"%s\": %m", buf);

View File

@ -32,7 +32,7 @@ char *additional_ext = NULL; /* Extension to remove from filenames */
char *archiveLocation; /* where to find the archive? */ char *archiveLocation; /* where to find the archive? */
char *restartWALFileName; /* the file from which we can restart restore */ char *restartWALFileName; /* the file from which we can restart restore */
char WALFilePath[MAXPGPATH]; /* the file path including archive */ char WALFilePath[MAXPGPATH * 2]; /* the file path including archive */
char exclusiveCleanupFileName[MAXFNAMELEN]; /* the oldest file we char exclusiveCleanupFileName[MAXFNAMELEN]; /* the oldest file we
* want to remain in * want to remain in
* archive */ * archive */
@ -133,7 +133,7 @@ CleanupPriorWALFiles(void)
* extension that might have been chopped off before testing * extension that might have been chopped off before testing
* the sequence. * the sequence.
*/ */
snprintf(WALFilePath, MAXPGPATH, "%s/%s", snprintf(WALFilePath, sizeof(WALFilePath), "%s/%s",
archiveLocation, xlde->d_name); archiveLocation, xlde->d_name);
if (dryrun) if (dryrun)

View File

@ -244,7 +244,7 @@ FindStreamingStart(uint32 *tli)
if (!ispartial && !iscompress) if (!ispartial && !iscompress)
{ {
struct stat statbuf; struct stat statbuf;
char fullpath[MAXPGPATH]; char fullpath[MAXPGPATH * 2];
snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name); snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name);
if (stat(fullpath, &statbuf) != 0) if (stat(fullpath, &statbuf) != 0)
@ -267,7 +267,7 @@ FindStreamingStart(uint32 *tli)
int fd; int fd;
char buf[4]; char buf[4];
int bytes_out; int bytes_out;
char fullpath[MAXPGPATH]; char fullpath[MAXPGPATH * 2];
snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name); snprintf(fullpath, sizeof(fullpath), "%s/%s", basedir, dirent->d_name);

View File

@ -958,7 +958,7 @@ KillExistingXLOG(void)
{ {
DIR *xldir; DIR *xldir;
struct dirent *xlde; struct dirent *xlde;
char path[MAXPGPATH]; char path[MAXPGPATH + sizeof(XLOGDIR)];
xldir = opendir(XLOGDIR); xldir = opendir(XLOGDIR);
if (xldir == NULL) if (xldir == NULL)
@ -973,7 +973,7 @@ KillExistingXLOG(void)
if (IsXLogFileName(xlde->d_name) || if (IsXLogFileName(xlde->d_name) ||
IsPartialXLogFileName(xlde->d_name)) IsPartialXLogFileName(xlde->d_name))
{ {
snprintf(path, MAXPGPATH, "%s/%s", XLOGDIR, xlde->d_name); snprintf(path, sizeof(path), "%s/%s", XLOGDIR, xlde->d_name);
if (unlink(path) < 0) if (unlink(path) < 0)
{ {
fprintf(stderr, _("%s: could not delete file \"%s\": %s\n"), fprintf(stderr, _("%s: could not delete file \"%s\": %s\n"),
@ -1005,11 +1005,11 @@ KillExistingXLOG(void)
static void static void
KillExistingArchiveStatus(void) KillExistingArchiveStatus(void)
{ {
#define ARCHSTATDIR XLOGDIR "/archive_status"
DIR *xldir; DIR *xldir;
struct dirent *xlde; struct dirent *xlde;
char path[MAXPGPATH]; char path[MAXPGPATH + sizeof(ARCHSTATDIR)];
#define ARCHSTATDIR XLOGDIR "/archive_status"
xldir = opendir(ARCHSTATDIR); xldir = opendir(ARCHSTATDIR);
if (xldir == NULL) if (xldir == NULL)
@ -1027,7 +1027,7 @@ KillExistingArchiveStatus(void)
strcmp(xlde->d_name + XLOG_FNAME_LEN, ".partial.ready") == 0 || strcmp(xlde->d_name + XLOG_FNAME_LEN, ".partial.ready") == 0 ||
strcmp(xlde->d_name + XLOG_FNAME_LEN, ".partial.done") == 0)) strcmp(xlde->d_name + XLOG_FNAME_LEN, ".partial.done") == 0))
{ {
snprintf(path, MAXPGPATH, "%s/%s", ARCHSTATDIR, xlde->d_name); snprintf(path, sizeof(path), "%s/%s", ARCHSTATDIR, xlde->d_name);
if (unlink(path) < 0) if (unlink(path) < 0)
{ {
fprintf(stderr, _("%s: could not delete file \"%s\": %s\n"), fprintf(stderr, _("%s: could not delete file \"%s\": %s\n"),

View File

@ -65,14 +65,14 @@ recurse_dir(const char *datadir, const char *parentpath,
while (errno = 0, (xlde = readdir(xldir)) != NULL) while (errno = 0, (xlde = readdir(xldir)) != NULL)
{ {
struct stat fst; struct stat fst;
char fullpath[MAXPGPATH]; char fullpath[MAXPGPATH * 2];
char path[MAXPGPATH]; char path[MAXPGPATH * 2];
if (strcmp(xlde->d_name, ".") == 0 || if (strcmp(xlde->d_name, ".") == 0 ||
strcmp(xlde->d_name, "..") == 0) strcmp(xlde->d_name, "..") == 0)
continue; continue;
snprintf(fullpath, MAXPGPATH, "%s/%s", fullparentpath, xlde->d_name); snprintf(fullpath, sizeof(fullpath), "%s/%s", fullparentpath, xlde->d_name);
if (lstat(fullpath, &fst) < 0) if (lstat(fullpath, &fst) < 0)
{ {
@ -93,9 +93,9 @@ recurse_dir(const char *datadir, const char *parentpath,
} }
if (parentpath) if (parentpath)
snprintf(path, MAXPGPATH, "%s/%s", parentpath, xlde->d_name); snprintf(path, sizeof(path), "%s/%s", parentpath, xlde->d_name);
else else
snprintf(path, MAXPGPATH, "%s", xlde->d_name); snprintf(path, sizeof(path), "%s", xlde->d_name);
if (S_ISREG(fst.st_mode)) if (S_ISREG(fst.st_mode))
callback(path, FILE_TYPE_REGULAR, fst.st_size, NULL); callback(path, FILE_TYPE_REGULAR, fst.st_size, NULL);

View File

@ -166,7 +166,7 @@ walkdir(const char *path,
while (errno = 0, (de = readdir(dir)) != NULL) while (errno = 0, (de = readdir(dir)) != NULL)
{ {
char subpath[MAXPGPATH]; char subpath[MAXPGPATH * 2];
struct stat fst; struct stat fst;
int sret; int sret;
@ -174,7 +174,7 @@ walkdir(const char *path,
strcmp(de->d_name, "..") == 0) strcmp(de->d_name, "..") == 0)
continue; continue;
snprintf(subpath, MAXPGPATH, "%s/%s", path, de->d_name); snprintf(subpath, sizeof(subpath), "%s/%s", path, de->d_name);
if (process_symlinks) if (process_symlinks)
sret = stat(subpath, &fst); sret = stat(subpath, &fst);

View File

@ -412,7 +412,7 @@ pg_tzenumerate_next(pg_tzenum *dir)
while (dir->depth >= 0) while (dir->depth >= 0)
{ {
struct dirent *direntry; struct dirent *direntry;
char fullname[MAXPGPATH]; char fullname[MAXPGPATH * 2];
struct stat statbuf; struct stat statbuf;
direntry = ReadDir(dir->dirdesc[dir->depth], dir->dirname[dir->depth]); direntry = ReadDir(dir->dirdesc[dir->depth], dir->dirname[dir->depth]);
@ -429,7 +429,7 @@ pg_tzenumerate_next(pg_tzenum *dir)
if (direntry->d_name[0] == '.') if (direntry->d_name[0] == '.')
continue; continue;
snprintf(fullname, MAXPGPATH, "%s/%s", snprintf(fullname, sizeof(fullname), "%s/%s",
dir->dirname[dir->depth], direntry->d_name); dir->dirname[dir->depth], direntry->d_name);
if (stat(fullname, &statbuf) != 0) if (stat(fullname, &statbuf) != 0)
ereport(ERROR, ereport(ERROR,