Skip to content
Snippets Groups Projects
Commit f023fc66 authored by Tom Lane's avatar Tom Lane
Browse files

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

parent 74888b93
No related branches found
No related tags found
No related merge requests found
/*
* 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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment