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]