aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2022-02-25 10:30:05 -0800
committerAndres Freund <andres@anarazel.de>2022-02-25 10:32:38 -0800
commit0b1020a96d8e14ba5c5fe22f825c3093160aa83b (patch)
tree1bd14454364df04aaab0bd79e0ea1addb2a51e31 /src
parentc2551483e0f6855183ae43a74abb3e434803b907 (diff)
downloadpostgresql-0b1020a96d8e14ba5c5fe22f825c3093160aa83b.tar.gz
postgresql-0b1020a96d8e14ba5c5fe22f825c3093160aa83b.zip
pg_waldump: Fix error message for WAL files smaller than XLOG_BLCKSZ.
When opening a WAL file smaller than XLOG_BLCKSZ (e.g. 0 bytes long) while determining the wal_segment_size, pg_waldump checked errno, despite errno not being set by the short read. Resulting in a bogus error message. Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Discussion: https://postgr.es/m/20220214.181847.775024684568733277.horikyota.ntt@gmail.com Backpatch: 11-, the bug was introducedin fc49e24fa
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_waldump/pg_waldump.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/bin/pg_waldump/pg_waldump.c b/src/bin/pg_waldump/pg_waldump.c
index 837f9364b8c..3730156e100 100644
--- a/src/bin/pg_waldump/pg_waldump.c
+++ b/src/bin/pg_waldump/pg_waldump.c
@@ -204,15 +204,12 @@ search_directory(const char *directory, const char *fname)
WalSegSz),
fname, WalSegSz);
}
+ else if (r < 0)
+ fatal_error("could not read file \"%s\": %m",
+ fname);
else
- {
- if (errno != 0)
- fatal_error("could not read file \"%s\": %m",
- fname);
- else
- fatal_error("could not read file \"%s\": read %d of %zu",
- fname, r, (Size) XLOG_BLCKSZ);
- }
+ fatal_error("could not read file \"%s\": read %d of %zu",
+ fname, r, (Size) XLOG_BLCKSZ);
close(fd);
return true;
}