diff options
author | Bruce Momjian <bruce@momjian.us> | 2015-11-14 11:47:12 -0500 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2015-11-14 11:47:12 -0500 |
commit | 025106e314627f5aacdf72fca52ba0ed985d696e (patch) | |
tree | 701cd93ac4aae65c23801ecb77a684f0ba0acbfe | |
parent | 42aa1c032e3520d608a1e89abbf36409b022d4b7 (diff) | |
download | postgresql-025106e314627f5aacdf72fca52ba0ed985d696e.tar.gz postgresql-025106e314627f5aacdf72fca52ba0ed985d696e.zip |
pg_upgrade: properly detect file copy failure on Windows
Previously, file copy failures were ignored on Windows due to an
incorrect return value check.
Report by Manu Joye
Backpatch through 9.1
-rw-r--r-- | src/bin/pg_upgrade/file.c | 6 | ||||
-rw-r--r-- | src/bin/pg_upgrade/pg_upgrade.h | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/bin/pg_upgrade/file.c b/src/bin/pg_upgrade/file.c index 79d9390216e..37eb832c93a 100644 --- a/src/bin/pg_upgrade/file.c +++ b/src/bin/pg_upgrade/file.c @@ -34,7 +34,11 @@ copyAndUpdateFile(pageCnvCtx *pageConverter, { if (pageConverter == NULL) { - if (pg_copy_file(src, dst, force) == -1) +#ifndef WIN32 + if (copy_file(src, dst, force) == -1) +#else + if (CopyFile(src, dst, force) == 0) +#endif return getErrorText(errno); else return NULL; diff --git a/src/bin/pg_upgrade/pg_upgrade.h b/src/bin/pg_upgrade/pg_upgrade.h index 13aa891d59d..fa4661b7d6a 100644 --- a/src/bin/pg_upgrade/pg_upgrade.h +++ b/src/bin/pg_upgrade/pg_upgrade.h @@ -70,7 +70,6 @@ extern char *output_files[]; #ifndef WIN32 -#define pg_copy_file copy_file #define pg_mv_file rename #define pg_link_file link #define PATH_SEPARATOR '/' @@ -82,7 +81,6 @@ extern char *output_files[]; #define ECHO_QUOTE "'" #define ECHO_BLANK "" #else -#define pg_copy_file CopyFile #define pg_mv_file pgrename #define pg_link_file win32_pghardlink #define PATH_SEPARATOR '\\' |