aboutsummaryrefslogtreecommitdiff
path: root/contrib/pg_upgrade/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/pg_upgrade/file.c')
-rw-r--r--contrib/pg_upgrade/file.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
index deaca4698b7..803e0a0f70f 100644
--- a/contrib/pg_upgrade/file.c
+++ b/contrib/pg_upgrade/file.c
@@ -302,7 +302,10 @@ pg_scandir_internal(const char *dirname,
(size_t) ((name_num + 1) * sizeof(struct dirent *)));
if (*namelist == NULL)
+ {
+ closedir(dirdesc);
return -1;
+ }
entrysize = sizeof(struct dirent) - sizeof(direntry->d_name) +
strlen(direntry->d_name) + 1;
@@ -310,7 +313,10 @@ pg_scandir_internal(const char *dirname,
(*namelist)[name_num] = (struct dirent *) malloc(entrysize);
if ((*namelist)[name_num] == NULL)
+ {
+ closedir(dirdesc);
return -1;
+ }
memcpy((*namelist)[name_num], direntry, entrysize);