aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2015-11-14 11:47:11 -0500
committerBruce Momjian <bruce@momjian.us>2015-11-14 11:47:11 -0500
commitbdcbc2b47141cb84e6cd951fa7feef9cedce231a (patch)
tree56bfdb78d3fab7b14cd46b91d71a5a7eb1394f1b
parent7fe1d1cfbfaf190ccba576a50214378f6a262325 (diff)
downloadpostgresql-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.c6
-rw-r--r--contrib/pg_upgrade/pg_upgrade.h2
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)