diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-08-02 15:17:24 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-08-02 15:17:24 +0000 |
commit | f023fc6689bae02908e73c4cd7cf6e98c09ce9d7 (patch) | |
tree | 6c55bcb3f717712aecf617b7ab703ff45d7f92de /src/backend/utils/adt/dbsize.c | |
parent | 74888b93490ea7c4f70fafba196bb4ad2891c259 (diff) | |
download | postgresql-f023fc6689bae02908e73c4cd7cf6e98c09ce9d7.tar.gz postgresql-f023fc6689bae02908e73c4cd7cf6e98c09ce9d7.zip |
Use ReadDir() not readdir() so as to have some modicum of error checking.
Diffstat (limited to 'src/backend/utils/adt/dbsize.c')
-rw-r--r-- | src/backend/utils/adt/dbsize.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index 57b72fe15cc..e86f828f559 100644 --- a/src/backend/utils/adt/dbsize.c +++ b/src/backend/utils/adt/dbsize.c @@ -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; |