@@ -39,7 +39,7 @@ db_dir_size(const char *path)
3939int64 dirsize = 0 ;
4040struct dirent * direntry ;
4141DIR * dirdesc ;
42- char filename [MAXPGPATH ];
42+ char filename [MAXPGPATH * 2 ];
4343
4444dirdesc = AllocateDir (path );
4545
@@ -56,7 +56,7 @@ db_dir_size(const char *path)
5656strcmp (direntry -> d_name ,".." )== 0 )
5757continue ;
5858
59- snprintf (filename ,MAXPGPATH ,"%s/%s" ,path ,direntry -> d_name );
59+ snprintf (filename ,sizeof ( filename ) ,"%s/%s" ,path ,direntry -> d_name );
6060
6161if (stat (filename ,& fst )< 0 )
6262{
@@ -84,7 +84,7 @@ calculate_database_size(Oid dbOid)
8484DIR * dirdesc ;
8585struct dirent * direntry ;
8686char dirpath [MAXPGPATH ];
87- char pathname [MAXPGPATH ];
87+ char pathname [MAXPGPATH + 12 + sizeof ( TABLESPACE_VERSION_DIRECTORY ) ];
8888AclResult aclresult ;
8989
9090/* User must have connect privilege for target database */
@@ -96,7 +96,7 @@ calculate_database_size(Oid dbOid)
9696/* Shared storage in pg_global is not counted */
9797
9898/* Include pg_default storage */
99- snprintf (pathname ,MAXPGPATH ,"base/%u" ,dbOid );
99+ snprintf (pathname ,sizeof ( pathname ) ,"base/%u" ,dbOid );
100100totalsize = db_dir_size (pathname );
101101
102102/* Scan the non-default tablespaces */
@@ -116,7 +116,7 @@ calculate_database_size(Oid dbOid)
116116strcmp (direntry -> d_name ,".." )== 0 )
117117continue ;
118118
119- snprintf (pathname ,MAXPGPATH ,"pg_tblspc/%s/%s/%u" ,
119+ snprintf (pathname ,sizeof ( pathname ) ,"pg_tblspc/%s/%s/%u" ,
120120direntry -> d_name ,TABLESPACE_VERSION_DIRECTORY ,dbOid );
121121totalsize += db_dir_size (pathname );
122122}
@@ -164,7 +164,7 @@ static int64
164164calculate_tablespace_size (Oid tblspcOid )
165165{
166166char tblspcPath [MAXPGPATH ];
167- char pathname [MAXPGPATH ];
167+ char pathname [MAXPGPATH * 2 ];
168168int64 totalsize = 0 ;
169169DIR * dirdesc ;
170170struct dirent * direntry ;
@@ -206,7 +206,7 @@ calculate_tablespace_size(Oid tblspcOid)
206206strcmp (direntry -> d_name ,".." )== 0 )
207207continue ;
208208
209- snprintf (pathname ,MAXPGPATH ,"%s/%s" ,tblspcPath ,direntry -> d_name );
209+ snprintf (pathname ,sizeof ( pathname ) ,"%s/%s" ,tblspcPath ,direntry -> d_name );
210210
211211if (stat (pathname ,& fst )< 0 )
212212{