pgsql: Fix compilation with OpenSSL 4

Started by Daniel Gustafsson4 months ago3 messageshackerscomitters
Jump to latest
#1Daniel Gustafsson
daniel@yesql.se
comittershackers

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(-)

#2Christoph Berg
myon@debian.org
In reply to: Daniel Gustafsson (#1)
hackers
Re: pgsql: Fix compilation with OpenSSL 4

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

#3Daniel Gustafsson
daniel@yesql.se
In reply to: Christoph Berg (#2)
hackers
Re: pgsql: Fix compilation with OpenSSL 4

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