]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Don't leak malloc'd strings when a GUC setting is rejected.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 19 Mar 2021 02:09:41 +0000 (22:09 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 19 Mar 2021 02:09:41 +0000 (22:09 -0400)
commit5058e95a6ef99e03dd5e41c9cda531cbed721d53
tree339d5e32082ba336c1948f41b6d0f5de7fcbf2c6
parent0b618ddf8bb2fba5492445b56d21647722b8350e
Don't leak malloc'd strings when a GUC setting is rejected.

Because guc.c prefers to keep all its string values in malloc'd
not palloc'd storage, it has to be more careful than usual to
avoid leaks.  Error exits out of string GUC hook checks failed
to clear the proposed value string, and error exits out of
ProcessGUCArray() failed to clear the malloc'd results of
ParseLongOption().

Found via valgrind testing.
This problem is ancient, so back-patch to all supported branches.

Discussion: https://postgr.es/m/3816764.1616104288@sss.pgh.pa.us
src/backend/utils/misc/guc.c