ssl: init only once without threads The OpenSSL library-loading functions do not expect to be called multiple times. Add a flag in the non-threaded libgit2 init so we only call once. This fixes #2446.
diff --git a/src/global.c b/src/global.c
index 03a4bce..c72bfe8 100644
--- a/src/global.c
+++ b/src/global.c
@@ -291,7 +291,13 @@ static git_global_st __state;
int git_threads_init(void)
{
- init_ssl();
+ static int ssl_inited = 0;
+
+ if (!ssl_inited) {
+ init_ssl();
+ ssl_inited = 1;
+ }
+
git_atomic_inc(&git__n_inits);
return 0;
}