From: Tom Lane Date: Wed, 22 Oct 2025 17:38:37 +0000 (-0400) Subject: Fix memory leaks in pg_combinebackup/reconstruct.c. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9224c3025243a3daeb49fa58b948c6e1fdf99501;p=thirdparty%2Fpostgresql.git 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. --- 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; }