diff options
author | Bruce Momjian <bruce@momjian.us> | 2015-11-14 11:47:11 -0500 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2015-11-14 11:47:11 -0500 |
commit | bdcbc2b47141cb84e6cd951fa7feef9cedce231a (patch) | |
tree | 56bfdb78d3fab7b14cd46b91d71a5a7eb1394f1b | |
parent | 7fe1d1cfbfaf190ccba576a50214378f6a262325 (diff) | |
download | postgresql-bdcbc2b47141cb84e6cd951fa7feef9cedce231a.tar.gz postgresql-bdcbc2b47141cb84e6cd951fa7feef9cedce231a.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-- | contrib/pg_upgrade/file.c | 6 | ||||
-rw-r--r-- | contrib/pg_upgrade/pg_upgrade.h | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c index de23dedbf2b..2aa48f049ad 100644 --- a/contrib/pg_upgrade/file.c +++ b/contrib/pg_upgrade/file.c @@ -38,7 +38,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/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h index 0b3a83b9ef3..72e2e6acafc 100644 --- a/contrib/pg_upgrade/pg_upgrade.h +++ b/contrib/pg_upgrade/pg_upgrade.h @@ -35,7 +35,6 @@ #define DB_DUMP_FILE "pg_upgrade_dump_db.sql" #ifndef WIN32 -#define pg_copy_file copy_file #define pg_mv_file rename #define pg_link_file link #define PATH_SEPARATOR '/' @@ -43,7 +42,6 @@ #define RMDIR_CMD "rm -rf" #define SCRIPT_EXT "sh" #else -#define pg_copy_file CopyFile #define pg_mv_file pgrename #define pg_link_file win32_pghardlink #define sleep(x) Sleep(x * 1000) |