summaryrefslogtreecommitdiff
path: root/src/global.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-06-11 20:52:15 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2014-06-11 20:54:42 +0200
commit1d3364ac9d2bcd2d194f0afa0d301456d0d4e276 (patch)
tree74981c82bc5350a2303f6a68a9d162d6001dfec8 /src/global.c
parent716e20b47eb82ebd94588fe6c950e661b6fe4f15 (diff)
downloadlibgit2-1d3364ac9d2bcd2d194f0afa0d301456d0d4e276.tar.gz
netops: init OpenSSL once under lock
The OpenSSL init functions are not reentrant, which means that running multiple fetches in parallel can cause us to crash. Use a mutex to init OpenSSL, and since we're adding this extra checks, init it only once.
Diffstat (limited to 'src/global.c')
-rw-r--r--src/global.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/global.c b/src/global.c
index 7da31853e..fe410587e 100644
--- a/src/global.c
+++ b/src/global.c
@@ -16,6 +16,9 @@ git_mutex git__mwindow_mutex;
#define MAX_SHUTDOWN_CB 8
+git_mutex git__ssl_mutex;
+git_atomic git__ssl_init;
+
static git_global_shutdown_fn git__shutdown_callbacks[MAX_SHUTDOWN_CB];
static git_atomic git__n_shutdown_callbacks;
static git_atomic git__n_inits;