pgsql: Fix compilation with OpenSSL 4
Fix compilation with OpenSSL 4
OpenSSL 4.0.0 changed some parameters and returnvalues to const, so
we need to update our declarations and subsequently cast away const-
ness from a few callsites to make libpq build without warnings. This
is tested with OpenSSL 1.1.1 through 4.0.0 as well as with LibreSSL.
No functional change is introduced, this commit only allows postgres
to be compiled against OpenSSL 4.0.0 without warnings.
There is also an errormessage change in OpenSSL 4.0.0 which needed
to be covered by our testharness.
This will be backpatched to all supported branches since they are
all equally likely to be built against OpenSSL 4.0.0 as it becomes
available in distributions. Backpatching will be done once it has
been in master for a few days without issues.
Author: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: /messages/by-id/066B07BB-85FA-487C-BE8C-40F791CFC3C4@yesql.se
Backpatch-through: 14
Branch
------
REL_17_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/8bcabfccea32b9ed169312163b116a2b8f320f5c
Modified Files
--------------
contrib/sslinfo/sslinfo.c | 26 +++++++++++++-------------
src/backend/libpq/be-secure-openssl.c | 26 +++++++++++++-------------
src/interfaces/libpq/fe-secure-openssl.c | 13 +++++++------
src/test/ssl/t/001_ssltests.pl | 4 ++--
4 files changed, 35 insertions(+), 34 deletions(-)
Re: Daniel Gustafsson
There is also an errormessage change in OpenSSL 4.0.0 which needed
to be covered by our testharness.
The backpatches of the message test are incomplete for 16 and 17:
git show origin/REL_16_STABLE:src/test/ssl/t/001_ssltests.pl | grep 'alert certificate revoked'
expected_stderr => qr!SSL error: (ssl[a-z0-9/]*|tls) alert certificate revoked!,
expected_stderr => qr!SSL error: (ssl[a-z0-9/]*|tls) alert certificate revoked!,
expected_stderr => qr|SSL error: ssl[a-z0-9/]* alert certificate revoked|,
git show origin/REL_17_STABLE:src/test/ssl/t/001_ssltests.pl | grep 'alert certificate revoked'
expected_stderr => qr!SSL error: (ssl[a-z0-9/]*|tls) alert certificate revoked!,
expected_stderr => qr!SSL error: (ssl[a-z0-9/]*|tls) alert certificate revoked!,
expected_stderr => qr|SSL error: ssl[a-z0-9/]* alert certificate revoked|,
18/15/14 are ok:
git show origin/REL_18_STABLE:src/test/ssl/t/001_ssltests.pl | grep 'alert certificate revoked'
expected_stderr => qr!SSL error: (ssl[a-z0-9/]*|tls) alert certificate revoked!,
expected_stderr => qr!SSL error: (ssl[a-z0-9/]*|tls) alert certificate revoked!,
expected_stderr => qr!SSL error: (ssl[a-z0-9/]*|tls) alert certificate revoked!,
Noticed while bootstrapping the new Ubuntu stonking 26.10 for apt.pg.o.
Christoph
On 3 Sep 2026, at 10:42, Christoph Berg <cb@df7cb.de> wrote:
Re: Daniel Gustafsson
There is also an errormessage change in OpenSSL 4.0.0 which needed
to be covered by our testharness.The backpatches of the message test are incomplete for 16 and 17:
Fixed, thanks for the report!
--
Daniel Gustafsson