Re: WIP Incremental JSON Parser
| От | Tom Lane |
|---|---|
| Тема | Re: WIP Incremental JSON Parser |
| Дата | |
| Msg-id | 3003849.1712537916@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Re: WIP Incremental JSON Parser (Andrew Dunstan <andrew@dunslane.net>) |
| Ответы |
Re: WIP Incremental JSON Parser
|
| Список | pgsql-hackers |
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?
regards, tom lane
В списке pgsql-hackers по дате отправления: