• Stephen Frost's avatar
    Add locking around SSL_context usage in libpq · aad2a630
    Stephen Frost authored
    I've been working with Nick Phillips on an issue he ran into when
    trying to use threads with SSL client certificates.  As it turns out,
    the call in initialize_SSL() to SSL_CTX_use_certificate_chain_file()
    will modify our SSL_context without any protection from other threads
    also calling that function or being at some other point and trying to
    read from SSL_context.
    
    To protect against this, I've written up the attached (based on an
    initial patch from Nick and much subsequent discussion) which puts
    locks around SSL_CTX_use_certificate_chain_file() and all of the other
    users of SSL_context which weren't already protected.
    
    Nick Phillips, much reworked by Stephen Frost
    
    Back-patch to 9.0 where we started loading the cert directly instead of
    using a callback.
    aad2a630
fe-secure.c 41.7 KB