mirror of
https://github.com/zebrajr/postgres.git
synced 2025-12-06 12:20:15 +01:00
Fix memory leaks in pg_combinebackup/reconstruct.c.
One code path forgot to free the separately-malloc'd filename part of a struct rfile. Another place freed the filename but forgot the struct rfile itself. These seem worth fixing because with a large backup we could be dealing with many files. Coverity found the bug in make_rfile(). I found the other one by manual inspection.
This commit is contained in:
parent
4c5e1d0785
commit
9224c30252
|
|
@ -370,6 +370,7 @@ reconstruct_from_incremental_file(char *input_filename,
|
||||||
if (s->relative_block_numbers != NULL)
|
if (s->relative_block_numbers != NULL)
|
||||||
pfree(s->relative_block_numbers);
|
pfree(s->relative_block_numbers);
|
||||||
pg_free(s->filename);
|
pg_free(s->filename);
|
||||||
|
pg_free(s);
|
||||||
}
|
}
|
||||||
pfree(sourcemap);
|
pfree(sourcemap);
|
||||||
pfree(offsetmap);
|
pfree(offsetmap);
|
||||||
|
|
@ -517,6 +518,7 @@ make_rfile(char *filename, bool missing_ok)
|
||||||
{
|
{
|
||||||
if (missing_ok && errno == ENOENT)
|
if (missing_ok && errno == ENOENT)
|
||||||
{
|
{
|
||||||
|
pg_free(rf->filename);
|
||||||
pg_free(rf);
|
pg_free(rf);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user