mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Repair various defects in dc21234005
.
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
This commit is contained in:
@ -577,13 +577,12 @@ write_reconstructed_file(char *input_filename,
|
||||
{
|
||||
if (current_block == start_of_range)
|
||||
appendStringInfo(&debug_buf, " %u:%s@" UINT64_FORMAT,
|
||||
current_block,
|
||||
s == NULL ? "ZERO" : s->filename,
|
||||
current_block, s->filename,
|
||||
(uint64) offsetmap[current_block]);
|
||||
else
|
||||
appendStringInfo(&debug_buf, " %u-%u:%s@" UINT64_FORMAT,
|
||||
start_of_range, current_block,
|
||||
s == NULL ? "ZERO" : s->filename,
|
||||
s->filename,
|
||||
(uint64) offsetmap[current_block]);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user