postgres.git / summary / log / commit / refs
commit e2072b47b9abc7d298d242217919d3d0d9415fca
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Wed Oct 22 17:38:37 2025 +0000
First released in: 17.7, 18.1
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.
src/bin/pg_combinebackup/reconstruct.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/bin/pg_combinebackup/reconstruct.c b/src/bin/pg_combinebackup/reconstruct.c
index 8acaa54ff38..38d8e8a2dc9 100644
--- a/src/bin/pg_combinebackup/reconstruct.c
+++ b/src/bin/pg_combinebackup/reconstruct.c
@@ -370,6 +370,7 @@ reconstruct_from_incremental_file(char *input_filename,
if (s->relative_block_numbers != NULL)
pfree(s->relative_block_numbers);
pg_free(s->filename);
+ pg_free(s);
}
pfree(sourcemap);
pfree(offsetmap);
@@ -517,6 +518,7 @@ make_rfile(char *filename, bool missing_ok)
{
if (missing_ok && errno == ENOENT)
{
+ pg_free(rf->filename);
pg_free(rf);
return NULL;
}
[parent: 6ff7ba9fe525]