Commit e6b0ae7a13e20c4361327e50048a5143c8e9941b

Carlos Martín Nieto 2014-06-30T09:19:05

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;
 }