mirror of
https://github.com/postgres/postgres.git
synced 2025-09-09 13:09:39 +03:00
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.
This commit is contained in:
@@ -123,7 +123,6 @@ static bool parse_xlogrecptr(XLogRecPtr *result, char *input);
|
||||
|
||||
/*
|
||||
* Set up for incremental parsing of the manifest.
|
||||
*
|
||||
*/
|
||||
|
||||
JsonManifestParseIncrementalState *
|
||||
@@ -163,6 +162,18 @@ json_parse_manifest_incremental_init(JsonManifestParseContext *context)
|
||||
return incstate;
|
||||
}
|
||||
|
||||
/*
|
||||
* Free an incremental state object and its contents.
|
||||
*/
|
||||
void
|
||||
json_parse_manifest_incremental_shutdown(JsonManifestParseIncrementalState *incstate)
|
||||
{
|
||||
pfree(incstate->sem.semstate);
|
||||
freeJsonLexContext(&(incstate->lex));
|
||||
/* incstate->manifest_ctx has already been freed */
|
||||
pfree(incstate);
|
||||
}
|
||||
|
||||
/*
|
||||
* parse the manifest in pieces.
|
||||
*
|
||||
|
Reference in New Issue
Block a user