aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2015-11-14 11:47:12 -0500
committerBruce Momjian <bruce@momjian.us>2015-11-14 11:47:12 -0500
commit025106e314627f5aacdf72fca52ba0ed985d696e (patch)
tree701cd93ac4aae65c23801ecb77a684f0ba0acbfe
parent42aa1c032e3520d608a1e89abbf36409b022d4b7 (diff)
downloadpostgresql-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.c6
-rw-r--r--src/bin/pg_upgrade/pg_upgrade.h2
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 '\\'