diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c index 40463c61369..a1b0176590a 100644 --- a/contrib/pg_upgrade/file.c +++ b/contrib/pg_upgrade/file.c @@ -37,7 +37,7 @@ copyAndUpdateFile(pageCnvCtx *pageConverter, #ifndef WIN32 if (copy_file(src, dst, force) == -1) #else - if (CopyFile(src, dst, force) == 0) + if (CopyFile(src, dst, !force) == 0) #endif return getErrorText(errno); else diff --git a/contrib/pg_upgrade/util.c b/contrib/pg_upgrade/util.c index c0d9deebca4..d323045deb3 100644 --- a/contrib/pg_upgrade/util.c +++ b/contrib/pg_upgrade/util.c @@ -253,6 +253,8 @@ getErrorText(int errNum) { #ifdef WIN32 _dosmaperr(GetLastError()); + /* _dosmaperr sets errno, so we copy errno here */ + errNum = errno; #endif return pg_strdup(strerror(errNum)); }