]> granicus.if.org Git - curl/commitdiff
openssl: adapt to API breakage in ERR_remove_thread_state()
authorGisle Vanem <gvanem@yahoo.no>
Thu, 17 Mar 2016 09:42:33 +0000 (10:42 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 17 Mar 2016 09:42:33 +0000 (10:42 +0100)
The OpenSSL API change that broke this is "Convert ERR_STATE to new
multi-threading API": openssl commit 8509dcc.

Closes #713

lib/vtls/openssl.c

index 3b19369f12db84817b6a0d2f610b2217705ebdd0..540800d1f80af838eacf51a04557fcbd37cc6c3e 100644 (file)
 
 #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
 #define HAVE_ERR_REMOVE_THREAD_STATE 1
+#if (OPENSSL_VERSION_NUMBER >= 0x10100004L)
+/* OpenSSL 1.1.0-pre4 removed the argument! */
+#define HAVE_ERR_REMOVE_THREAD_STATE_NOARG 1
+#endif
 #endif
 
 #if !defined(HAVE_SSLV2_CLIENT_METHOD) || \
@@ -731,7 +735,9 @@ void Curl_ossl_cleanup(void)
   ERR_free_strings();
 
   /* Free thread local error state, destroying hash upon zero refcount */
-#ifdef HAVE_ERR_REMOVE_THREAD_STATE
+#ifdef HAVE_ERR_REMOVE_THREAD_STATE_NOARG
+  ERR_remove_thread_state();
+#elif defined(HAVE_ERR_REMOVE_THREAD_STATE)
   ERR_remove_thread_state(NULL);
 #else
   ERR_remove_state(0);