Thread: pgsql: Acquire ControlFileLock in relevant SQL functions.

pgsql: Acquire ControlFileLock in relevant SQL functions.

From
Thomas Munro
Date:
Acquire ControlFileLock in relevant SQL functions.

Commit dc7d70ea added functions that read the control file, but didn't
acquire ControlFileLock.  With unlucky timing, file systems that have
weak interlocking like ext4 and ntfs could expose partially overwritten
contents, and the checksum would fail.

Back-patch to all supported releases.

Reviewed-by: David Steele <david@pgmasters.net>
Reviewed-by: Anton A. Melnikov <aamelnikov@inbox.ru>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/20221123014224.xisi44byq3cf5psi%40awork3.anarazel.de

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/a56fe5cf07fea61f8d79570633298951697a3f72

Modified Files
--------------
src/backend/utils/misc/pg_controldata.c | 9 +++++++++
1 file changed, 9 insertions(+)