diff options
author | Thomas Munro <tmunro@postgresql.org> | 2025-01-09 13:17:36 +1300 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2025-01-09 16:05:01 +1300 |
commit | faee3185aafa3a6055c2558b6fe7b5deb64d5460 (patch) | |
tree | 56d9e63c5b6b78f978a3630b633309a20bad5289 | |
parent | af109e3399b63355f126f61916dcd16d833d8481 (diff) |
Fix off_t overflow in pg_basebackup on Windows.
walmethods.c used off_t to navigate around a pg_wal.tar file that could
exceed 2GB, which doesn't work on Windows and would fail with misleading
errors. Use pgoff_t instead.
Back-patch to all supported branches.
Author: Davinder Singh <davinder.singh@enterprisedb.com>
Reported-by: Jakub Wartak <jakub.wartak@enterprisedb.com>
Discussion: https://postgr.es/m/CAKZiRmyM4YnokK6Oenw5JKwAQ3rhP0YTz2T-tiw5dAQjGRXE3Q%40mail.gmail.com
-rw-r--r-- | src/bin/pg_basebackup/receivelog.c | 2 | ||||
-rw-r--r-- | src/bin/pg_basebackup/walmethods.c | 2 | ||||
-rw-r--r-- | src/bin/pg_basebackup/walmethods.h | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c index 70f42467649..8543f3576a8 100644 --- a/src/bin/pg_basebackup/receivelog.c +++ b/src/bin/pg_basebackup/receivelog.c @@ -192,7 +192,7 @@ static bool close_walfile(StreamCtl *stream, XLogRecPtr pos) { char *fn; - off_t currpos; + pgoff_t currpos; int r; char walfile_name[MAXPGPATH]; diff --git a/src/bin/pg_basebackup/walmethods.c b/src/bin/pg_basebackup/walmethods.c index f17600de9d2..935429ea1e8 100644 --- a/src/bin/pg_basebackup/walmethods.c +++ b/src/bin/pg_basebackup/walmethods.c @@ -691,7 +691,7 @@ const WalWriteMethodOps WalTarMethodOps = { typedef struct TarMethodFile { Walfile base; - off_t ofs_start; /* Where does the *header* for this file start */ + pgoff_t ofs_start; /* Where does the *header* for this file start */ char header[TAR_BLOCK_SIZE]; size_t pad_to_size; } TarMethodFile; diff --git a/src/bin/pg_basebackup/walmethods.h b/src/bin/pg_basebackup/walmethods.h index c9042600f95..488dd8f92d3 100644 --- a/src/bin/pg_basebackup/walmethods.h +++ b/src/bin/pg_basebackup/walmethods.h @@ -17,7 +17,7 @@ typedef struct WalWriteMethod WalWriteMethod; typedef struct { WalWriteMethod *wwmethod; - off_t currpos; + pgoff_t currpos; char *pathname; /* |