diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2017-07-14 16:02:53 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2017-07-14 16:03:16 +0300 |
commit | 240299806e90e633eb57c12098cce2d8d5246354 (patch) | |
tree | 87bf86fdaf908e4513b128bc201463ccbe5c2984 /src/bin/pg_dump/pg_backup_archiver.c | |
parent | 26d867875b85665b143300428380059dc52b1c84 (diff) |
Fix pg_basebackup output to stdout on Windows.
When writing a backup to stdout with pg_basebackup on Windows, put stdout
to binary mode. Any CR bytes in the output will otherwise be output
incorrectly as CR+LF.
In the passing, standardize on using "_setmode" instead of "setmode", for
the sake of consistency. They both do the same thing, but according to
MSDN documentation, setmode is deprecated.
Fixes bug #14634, reported by Henry Boehlert. Patch by Haribabu Kommi.
Backpatch to all supported versions.
Discussion: https://www.postgresql.org/message-id/20170428082818.24366.13134@wrigleys.postgresql.org
Diffstat (limited to 'src/bin/pg_dump/pg_backup_archiver.c')
-rw-r--r-- | src/bin/pg_dump/pg_backup_archiver.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 377ab5f7aae..64aae43e2ff 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -2224,9 +2224,9 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt, (AH->fSpec == NULL || strcmp(AH->fSpec, "") == 0)) { if (mode == archModeWrite) - setmode(fileno(stdout), O_BINARY); + _setmode(fileno(stdout), O_BINARY); else - setmode(fileno(stdin), O_BINARY); + _setmode(fileno(stdin), O_BINARY); } #endif |