Commit f023fc66 authored by Tom Lane's avatar Tom Lane

Use ReadDir() not readdir() so as to have some modicum of error checking.

parent 74888b93
......@@ -5,7 +5,7 @@
* 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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment