diff options
author | Andres Freund <andres@anarazel.de> | 2022-02-25 10:30:05 -0800 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2022-02-25 10:34:38 -0800 |
commit | 5407241a8ec1af770010d05715f0e3a31db5c518 (patch) | |
tree | 68ac0886ead7ccfd404b5bc879b59b5c3691f890 /src | |
parent | 0033fc63f5b2b763406f2299c426b9e1572fa244 (diff) | |
download | postgresql-5407241a8ec1af770010d05715f0e3a31db5c518.tar.gz postgresql-5407241a8ec1af770010d05715f0e3a31db5c518.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.c | 13 |
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 0fee1ebdee1..b1e5f461045 100644 --- a/src/bin/pg_waldump/pg_waldump.c +++ b/src/bin/pg_waldump/pg_waldump.c @@ -207,15 +207,12 @@ search_directory(const char *directory, const char *fname) WalSegSz), fname, WalSegSz); } + else if (r < 0) + fatal_error("could not read file \"%s\": %s", + fname, strerror(errno)); else - { - if (errno != 0) - fatal_error("could not read file \"%s\": %s", - fname, strerror(errno)); - 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; } |