• Tom Lane's avatar
    Fix bugs in libpq's management of GSS encryption state. · 25fe5ac4
    Tom Lane authored
    GSS-related resources should be cleaned up in pqDropConnection,
    not freePGconn, else the wrong things happen when resetting
    a connection or trying to switch to a different server.
    It's also critical to reset conn->gssenc there.
    
    During connection setup, initialize conn->try_gss at the correct
    place, else switching to a different server won't work right.
    
    Remove now-redundant cleanup of GSS resources around one (and, for
    some reason, only one) pqDropConnection call in connectDBStart.
    
    Per report from Kyotaro Horiguchi that psql would freeze up,
    rather than successfully resetting a GSS-encrypted connection
    after a server restart.
    
    This is YA oversight in commit b0b39f72, so back-patch to v12.
    
    Discussion: https://postgr.es/m/20200710.173803.435804731896516388.horikyota.ntt@gmail.com
    25fe5ac4
fe-connect.c 181 KB