On 2024-04-07 Su 20:58, Tom Lane wrote:
Coverity complained that this patch leaks memory:

/srv/coverity/git/pgsql-git/postgresql/src/bin/pg_combinebackup/load_manifest.c:
 212 in load_backup_manifest()
206                             bytes_left -= rc;
207                             json_parse_manifest_incremental_chunk(
208                                                                             
                          inc_state, buffer, rc, bytes_left == 0);
209                     }
210
211                     close(fd);
     CID 1596259:    (RESOURCE_LEAK)
     Variable "inc_state" going out of scope leaks the storage it points to.
212             }
213
214             /* All done. */
215             pfree(buffer);
216             return result;
217     }

/srv/coverity/git/pgsql-git/postgresql/src/bin/pg_verifybackup/pg_verifybackup.c:
 488 in parse_manifest_file()
482                             bytes_left -= rc;
483                             json_parse_manifest_incremental_chunk(
484                                                                             
                          inc_state, buffer, rc, bytes_left == 0);
485                     }
486
487                     close(fd);
     CID 1596257:    (RESOURCE_LEAK)
     Variable "inc_state" going out of scope leaks the storage it points to.
488             }
489
490             /* Done with the buffer. */
491             pfree(buffer);
492
493             return result;

It's right about that AFAICS, and not only is the "inc_state" itself
leaked but so is its assorted infrastructure.  Perhaps we don't care
too much about that in the existing applications, but ISTM that
isn't going to be a tenable assumption across the board.  Shouldn't
there be a "json_parse_manifest_incremental_shutdown()" or the like
to deallocate all the storage allocated by the parser?



yeah, probably. Will work on it.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com



Reply via email to