From: Amit Kapila Date: Fri, 31 Aug 2018 09:55:42 +0000 (+0530) Subject: Fix pg_verify_checksums on Windows. X-Git-Tag: REL_12_BETA1~1635 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bb60f2cb6ed8361fbf18b92d312776046d9b0103;p=postgresql Fix pg_verify_checksums on Windows. To verify the checksums, we open the file in text mode which doesn't work on Windows as WIN32 treats Control-Z as EOF in files opened in text mode. This leads to "short read of block .." error in some cases. Fix it by opening the files in the binary mode. Author: Amit Kapila Reviewed-by: Magnus Hagander Backpatch-through: 11 Discussion: https://postgr.es/m/CAA4eK1+LOnzod+h85FGmyjWzXKy-XV1FYwEyP-Tky2WpD5cxwA@mail.gmail.com --- diff --git a/src/bin/pg_verify_checksums/pg_verify_checksums.c b/src/bin/pg_verify_checksums/pg_verify_checksums.c index a941236563..d7b6f4a528 100644 --- a/src/bin/pg_verify_checksums/pg_verify_checksums.c +++ b/src/bin/pg_verify_checksums/pg_verify_checksums.c @@ -83,7 +83,7 @@ scan_file(char *fn, int segmentno) int f; int blockno; - f = open(fn, 0); + f = open(fn, O_RDONLY | PG_BINARY); if (f < 0) { fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),