]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Ensure ParseTzFile() closes the input file after failing.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 31 May 2022 18:47:44 +0000 (14:47 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 31 May 2022 18:47:44 +0000 (14:47 -0400)
commitae758e603d5c5251cec40b81162aef1a897ca130
treeeb2009d3f948b3b976342d5c765642a2a4c89799
parent424310bde98f50bd099ead09f07f9a8bd5ff6a83
Ensure ParseTzFile() closes the input file after failing.

We hadn't noticed this because (a) few people feed invalid
timezone abbreviation files to the server, and (b) in typical
scenarios guc.c would throw ereport(ERROR) and then transaction
abort handling would silently clean up the leaked file reference.
However, it was possible to observe file leakage warnings if one
breaks an already-active abbreviation file, because guc.c does
not throw ERROR when loading supposedly-validated settings during
session start or SIGHUP processing.

Report and fix by Kyotaro Horiguchi (cosmetic adjustments by me)

Discussion: https://postgr.es/m/20220530.173740.748502979257582392.horikyota.ntt@gmail.com
src/backend/utils/misc/tzparser.c