diff --git a/contrib/pg_upgrade/dump.c b/contrib/pg_upgrade/dump.c index b905ab084d7337dc4fc5c5b064e09c9c3ab00552..148dfb70c1805c0aa6ff3a961623bacbcf5273d4 100644 --- a/contrib/pg_upgrade/dump.c +++ b/contrib/pg_upgrade/dump.c @@ -58,14 +58,20 @@ split_old_dump(void) char filename[MAXPGPATH]; bool suppressed_username = false; + + /* + * Open all files in binary mode to avoid line end translation on Windows, + * boths for input and output. + */ + snprintf(filename, sizeof(filename), "%s", ALL_DUMP_FILE); - if ((all_dump = fopen(filename, "r")) == NULL) + if ((all_dump = fopen(filename, PG_BINARY_R)) == NULL) pg_log(PG_FATAL, "Could not open dump file \"%s\": %s\n", filename, getErrorText(errno)); snprintf(filename, sizeof(filename), "%s", GLOBALS_DUMP_FILE); - if ((globals_dump = fopen_priv(filename, "w")) == NULL) + if ((globals_dump = fopen_priv(filename, PG_BINARY_W)) == NULL) pg_log(PG_FATAL, "Could not write to dump file \"%s\": %s\n", filename, getErrorText(errno)); snprintf(filename, sizeof(filename), "%s", DB_DUMP_FILE); - if ((db_dump = fopen_priv(filename, "w")) == NULL) + if ((db_dump = fopen_priv(filename, PG_BINARY_W)) == NULL) pg_log(PG_FATAL, "Could not write to dump file \"%s\": %s\n", filename, getErrorText(errno)); current_output = globals_dump;