postgresql/src
Stephen Frost 0b821b8d7c 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:01 -04:00
..
backend Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:33 -04:00
bin Clean up pg_basebackup libpq usage 2013-07-15 11:27:20 -04:00
include Change post-rewriter representation of dropped columns in joinaliasvars. 2013-07-23 16:23:11 -04:00
interfaces Add locking around SSL_context usage in libpq 2013-08-01 01:24:01 -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:36 -04:00
port Stamp 9.1.9. 2013-04-01 14:23:05 -04:00
template Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
test Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:33 -04:00
timezone Update time zone data files to tzdata release 2013b. 2013-03-28 15:25:58 -04:00
tools Properly zero-pad the day-of-year part of the win32 build number 2013-01-31 15:08:05 +01:00
tutorial Modernize string literal syntax in tutorial example. 2013-01-19 17:21:08 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02: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 Fix some oversights in distprep and maintainer-clean targets. 2011-03-10 00:04:05 -05:00
Makefile.global.in Add mode where contrib installcheck runs each module in a separately named database. 2012-12-11 11:51:51 -05:00
Makefile.shlib Use single quotes in preference to double quotes for protecting pathnames. 2011-06-15 21:45:50 -04:00
nls-global.mk Fix makefile logic to not break the build when xgettext is missing 2010-10-14 23:16:46 +03:00
win32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00