mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
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
This commit is contained in:
parent
026762dae3
commit
970b97eeb8
@ -191,7 +191,7 @@ static bool
|
|||||||
close_walfile(StreamCtl *stream, XLogRecPtr pos)
|
close_walfile(StreamCtl *stream, XLogRecPtr pos)
|
||||||
{
|
{
|
||||||
char *fn;
|
char *fn;
|
||||||
off_t currpos;
|
pgoff_t currpos;
|
||||||
int r;
|
int r;
|
||||||
char walfile_name[MAXPGPATH];
|
char walfile_name[MAXPGPATH];
|
||||||
|
|
||||||
|
@ -691,7 +691,7 @@ static const WalWriteMethodOps WalTarMethodOps = {
|
|||||||
typedef struct TarMethodFile
|
typedef struct TarMethodFile
|
||||||
{
|
{
|
||||||
Walfile base;
|
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];
|
char header[TAR_BLOCK_SIZE];
|
||||||
size_t pad_to_size;
|
size_t pad_to_size;
|
||||||
} TarMethodFile;
|
} TarMethodFile;
|
||||||
|
@ -17,7 +17,7 @@ typedef struct WalWriteMethod WalWriteMethod;
|
|||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
WalWriteMethod *wwmethod;
|
WalWriteMethod *wwmethod;
|
||||||
off_t currpos;
|
pgoff_t currpos;
|
||||||
char *pathname;
|
char *pathname;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user