diff options
| author | Robert Haas | 2024-01-11 18:06:10 +0000 |
|---|---|---|
| committer | Robert Haas | 2024-01-11 18:06:10 +0000 |
| commit | 3d5c332a3d6002c5c95cb238e2164ae054c8e805 (patch) | |
| tree | 5308b9922e851faebec1d3f963d7d91c7f315da5 /src/common/blkreftable.c | |
| parent | ee1bfd168390bc843c6704d16e909692c0a79f27 (diff) | |
Repair various defects in dc212340058b4e7ecfc5a7a81ec50e7a207bf288.
pg_combinebackup had various problems:
* strncpy was used in various places where strlcpy should be used
instead, to avoid any possibility of the result not being
\0-terminated.
* scan_for_existing_tablespaces() failed to close the directory,
and an error when opening the directory was reported with the
wrong pathname.
* write_reconstructed_file() contained some redundant and therefore
dead code.
* flush_manifest() didn't check the result of pg_checksum_update()
as we do in other places, and misused a local pathname variable
that shouldn't exist at all.
In pg_basebackup, the wrong variable name was used in one place,
due to a copy and paste that was not properly adjusted.
In blkreftable.c, the loop incorrectly doubled chunkno instead of
max_chunks. Fix that. Also remove a nearby assertion per repeated
off-list complaints from Tom Lane.
Per Coverity and subsequent code inspection by me and by Tom Lane.
Discussion: http://postgr.es/m/CA+Tgmobvqqj-DW9F7uUzT-cQqs6wcVb-Xhs=w=hzJnXSE-kRGw@mail.gmail.com
Diffstat (limited to 'src/common/blkreftable.c')
| -rw-r--r-- | src/common/blkreftable.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/common/blkreftable.c b/src/common/blkreftable.c index bf0b563a38e..bfa6f7ab5d8 100644 --- a/src/common/blkreftable.c +++ b/src/common/blkreftable.c @@ -988,8 +988,7 @@ BlockRefTableEntryMarkBlockModified(BlockRefTableEntry *entry, */ max_chunks = Max(16, entry->nchunks); while (max_chunks < chunkno + 1) - chunkno *= 2; - Assert(max_chunks > chunkno); + max_chunks *= 2; extra_chunks = max_chunks - entry->nchunks; if (entry->nchunks == 0) |
