From f023fc6689bae02908e73c4cd7cf6e98c09ce9d7 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 2 Aug 2005 15:17:24 +0000 Subject: [PATCH] Use ReadDir() not readdir() so as to have some modicum of error checking. --- src/backend/utils/adt/dbsize.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index 57b72fe15c..e86f828f55 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; -- 2.11.0