From 128afeb5d8893b933372fda1bb865e18c9285c96 Mon Sep 17 00:00:00 2001 From: Satya Narlapuram Date: Wed, 8 Apr 2026 07:19:28 +0000 Subject: [PATCH] Prevent pg_enable/disable_data_checksums() on standby These functions missed a RecoveryInProgress() check, allowing them to be called on a hot standby. Adding checks to prevent them from running on a standby. --- src/backend/postmaster/datachecksum_state.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 1243949e..0d21e7fe 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -487,6 +487,8 @@ AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier) Datum disable_data_checksums(PG_FUNCTION_ARGS) { + PreventCommandDuringRecovery("pg_disable_data_checksums()"); + if (!superuser()) ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), @@ -507,6 +509,8 @@ enable_data_checksums(PG_FUNCTION_ARGS) int cost_delay = PG_GETARG_INT32(0); int cost_limit = PG_GETARG_INT32(1); + PreventCommandDuringRecovery("pg_enable_data_checksums()"); + if (!superuser()) ereport(ERROR, errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), -- 2.43.0