]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix inconsistent error handling for GSS encryption in PQconnectPoll()
authorMichael Paquier <michael@paquier.xyz>
Mon, 13 Mar 2023 07:36:28 +0000 (16:36 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 13 Mar 2023 07:36:28 +0000 (16:36 +0900)
commit4493256c5c0b0dace8cec76d5c3962f50ea28144
tree4d19a8efd91285031c33e69df340774e14d9cd1c
parent9e236f94367639308cff62a33bc1ed815cf0f50c
Fix inconsistent error handling for GSS encryption in PQconnectPoll()

The error cases for TLS and GSS encryption were inconsistent.  After TLS
fails, the connection is marked as dead and follow-up calls of
PQconnectPoll() would return immediately, but GSS encryption was not
doing that, so the connection would still have been allowed to enter the
GSS handling code.  This was handled incorrectly when gssencmode was set
to "require".  "prefer" was working correctly, and this could not happen
under "disable" as GSS encryption would not be attempted.

This commit makes the error handling of GSS encryption on par with TLS
portion, fixing the case of gssencmode=require.

Reported-by: Jacob Champion
Author: Michael Paquier
Reviewed-by: Jacob Champion, Stephen Frost
Discussion: https://postgr.es/m/23787477-5fe1-a161-6d2a-e459f74c4713@timescale.com
Backpatch-through: 12
src/interfaces/libpq/fe-connect.c