Fix broken scram-sha-256 authentication on big-endian machies. master
authorBo Peng <pengbo@sraoss.co.jp>
Mon, 30 Jun 2025 02:52:28 +0000 (11:52 +0900)
committerBo Peng <pengbo@sraoss.co.jp>
Mon, 30 Jun 2025 02:52:28 +0000 (11:52 +0900)
When scram-sha-256 authentication is performed, a hash function
pg_sha_256_final is used. It was imported from PostgreSQL and it uses
preprocessor define WORDS_BIGENDIAN to judge host machine's
endianness. Although WORDS_BIGENDIAN should be defined while
configure, this part was missed when pg_sha_256_final (and others) was
imported from PostgreSQL. As a result, scram-sha-256 worked only in
little endian machines. This commit fixes the issue by adding
AC_C_BIGENDIAN macro to configure.ac.

Author: Tatsuo Ishii
Reported-by: Christoph Berg
Reviewed-by: pranavkaruvally
Discussion: https://github.com/pgpool/pgpool2/issues/106
Backpatch-through: v4.2

configure.ac

index 881966fbc9fcf31ce8edc0d97ad892848f50641c..bd82830905fb9aa56753b57861604b4e21382b49 100644 (file)
@@ -105,7 +105,7 @@ dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_TYPE_PID_T
 AC_HEADER_TIME
-
+AC_C_BIGENDIAN
 
 dnl ===== Copied from PostgreSQL's configure start =====
 dnl