postgresql/src
Stephen Frost f310163655 Add locking around SSL_context usage in libpq
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.
2013-08-01 01:24:05 -04:00
..
backend Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:37 -04:00
bin Mark index-constraint comments with correct dependency in pg_dump. 2013-06-27 13:55:09 -04:00
include Change post-rewriter representation of dropped columns in joinaliasvars. 2013-07-23 16:23:16 -04:00
interfaces Add locking around SSL_context usage in libpq 2013-08-01 01:24:05 -04:00
makefiles Make pgxs build executables with the right suffix. 2013-01-19 14:54:29 -05:00
pl Add semicolons to eval'd strings to hide a minor Perl behavioral change. 2013-06-03 14:19:44 -04:00
port Stamp 9.0.13. 2013-04-01 14:25:34 -04:00
template Don't try to force use of -no-cpp-precomp on OS X. It's been five years 2010-08-02 04:51:25 +00:00
test Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:37 -04:00
timezone Update time zone data files to tzdata release 2013b. 2013-03-28 15:26:04 -04:00
tools Properly zero-pad the day-of-year part of the win32 build number 2013-01-31 15:08:43 +01:00
tutorial Remove copyright mention of Andrew Yu, per author's permission. 2010-02-02 18:52:02 +00:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:06 +02:00
bcc32.mak Remove old-style win32 client-only visual c++ build infrastructure for everything except 2007-03-05 14:18:38 +00:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Rethink the way walreceiver is linked into the backend. Instead than shoving 2010-01-20 09:16:24 +00:00
Makefile.global.in Add mode where contrib installcheck runs each module in a separately named database. 2012-12-11 11:48:00 -05:00
Makefile.shlib Fix assorted issues with build and install paths containing spaces. 2011-06-14 16:41:23 -04:00
nls-global.mk Avoid error from mkdir if no languages are to be installed 2010-05-13 14:35:28 +00:00
win32.mak Update supported standalone VC++ version to 7.1+ only, and fix 2007-08-03 10:47:11 +00:00