]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Use ReadDir() not readdir() so as to have some modicum of error checking.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Aug 2005 15:17:24 +0000 (15:17 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Aug 2005 15:17:24 +0000 (15:17 +0000)
src/backend/utils/adt/dbsize.c

index 57b72fe15cc3be3d23f79d666926c8f6eb4419ca..e86f828f559431063b3d597fb0167babcd14bfc5 100644 (file)
@@ -1,11 +1,11 @@
 /*
  * dbsize.c
- * object size functions
+ *             object size functions
  *
  * Copyright (c) 2002-2005, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.2 2005/08/02 14:07:27 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.3 2005/08/02 15:17:24 tgl Exp $
  *
  */
 
@@ -40,7 +40,7 @@ db_dir_size(const char *path)
        if (!dirdesc)
            return 0;
 
-       while ((direntry = readdir(dirdesc)) != NULL)
+       while ((direntry = ReadDir(dirdesc, path)) != NULL)
        {
            struct stat fst;
 
@@ -71,6 +71,7 @@ calculate_database_size(Oid dbOid)
        int64           totalsize = 0;
        DIR         *dirdesc;
     struct dirent *direntry;
+       char dirpath[MAXPGPATH];
        char pathname[MAXPGPATH];
 
        /* Shared storage in pg_global is not counted */
@@ -80,15 +81,15 @@ calculate_database_size(Oid dbOid)
        totalsize += db_dir_size(pathname);
 
        /* Scan the non-default tablespaces */
-       snprintf(pathname, MAXPGPATH, "%s/pg_tblspc", DataDir);
-       dirdesc = AllocateDir(pathname);
+       snprintf(dirpath, MAXPGPATH, "%s/pg_tblspc", DataDir);
+       dirdesc = AllocateDir(dirpath);
        if (!dirdesc)
            ereport(ERROR,
                                (errcode_for_file_access(),
                                 errmsg("could not open tablespace directory \"%s\": %m",
-                                               pathname)));
+                                               dirpath)));
 
-       while ((direntry = readdir(dirdesc)) != NULL)
+       while ((direntry = ReadDir(dirdesc, dirpath)) != NULL)
        {
            if (strcmp(direntry->d_name, ".") == 0 ||
                        strcmp(direntry->d_name, "..") == 0)
@@ -161,7 +162,7 @@ calculate_tablespace_size(Oid tblspcOid)
                                 errmsg("could not open tablespace directory \"%s\": %m",
                                                tblspcPath)));
 
-       while ((direntry = readdir(dirdesc)) != NULL)
+       while ((direntry = ReadDir(dirdesc, tblspcPath)) != NULL)
        {
            struct stat fst;