aboutsummaryrefslogtreecommitdiff
path: root/src/backend/backup/basebackup_incremental.c
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2024-04-09 09:07:14 -0400
committerAndrew Dunstan <andrew@dunslane.net>2024-04-12 10:32:30 -0400
commit661ab4e185784db79c194b5758555b1db3f30483 (patch)
treec5fdde1cecca9ea8440f5e8e2412741acc34d580 /src/backend/backup/basebackup_incremental.c
parentb9ecefecc7aaad117e0255b56b759f524f0f4363 (diff)
downloadpostgresql-661ab4e185784db79c194b5758555b1db3f30483.tar.gz
postgresql-661ab4e185784db79c194b5758555b1db3f30483.zip
Fix some memory leaks associated with parsing json and manifests
Coverity complained about not freeing some memory associated with incrementally parsing backup manifests. To fix that, provide and use a new shutdown function for the JsonManifestParseIncrementalState object, in line with a suggestion from Tom Lane. While analysing the problem, I noticed a buglet in freeing memory for incremental json lexers. To fix that remove a bogus condition on freeing the memory allocated for them.
Diffstat (limited to 'src/backend/backup/basebackup_incremental.c')
-rw-r--r--src/backend/backup/basebackup_incremental.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/backup/basebackup_incremental.c b/src/backend/backup/basebackup_incremental.c
index 4962bf1529e..330a2294011 100644
--- a/src/backend/backup/basebackup_incremental.c
+++ b/src/backend/backup/basebackup_incremental.c
@@ -241,6 +241,9 @@ FinalizeIncrementalManifest(IncrementalBackupInfo *ib)
pfree(ib->buf.data);
ib->buf.data = NULL;
+ /* Done with inc_state, so release that memory too */
+ json_parse_manifest_incremental_shutdown(ib->inc_state);
+
/* Switch back to previous memory context. */
MemoryContextSwitchTo(oldcontext);
}