Skip to content
Snippets Groups Projects
Commit 86f0b806 authored by Yawning Angel's avatar Yawning Angel Committed by Nick Mathewson
Browse files

Bug 19406: OpenSSL changed the Thread API in 1.1.0 again.

Instead of `ERR_remove_thread_state()` having a modified prototype, it
now has the old prototype and a deprecation annotation.  Since it's
pointless to add extra complexity just to remain compatible with an old
OpenSSL development snapshot, update the code to work with 1.1.0pre5
and later.
parent 60b8aaef
No related branches found
No related tags found
No related merge requests found
......@@ -72,13 +72,18 @@
#define DISABLE_ENGINES
#endif
#if OPENSSL_VERSION_NUMBER >= OPENSSL_VER(1,1,0,0,4) && \
#if OPENSSL_VERSION_NUMBER >= OPENSSL_VER(1,1,0,0,5) && \
!defined(LIBRESSL_VERSION_NUMBER)
/* OpenSSL as of 1.1.0-pre4 has an "new" thread API, which doesn't require
/* OpenSSL as of 1.1.0pre4 has an "new" thread API, which doesn't require
* seting up various callbacks.
*
* Note: Yes, using OPENSSL_VER is naughty, but this was introduced in the
* pre-release series.
* OpenSSL 1.1.0pre4 has a messed up `ERR_remove_thread_state()` prototype,
* while the previous one was restored in pre5, and the function made a no-op
* (along with a deprecated annotation, which produces a compiler warning).
*
* While it is possible to support all three versions of the thread API,
* a version that existed only for one snapshot pre-release is kind of
* pointless, so let's not.
*/
#define NEW_THREAD_API
#endif
......@@ -430,9 +435,7 @@ crypto_global_init(int useAccel, const char *accelName, const char *accelDir)
void
crypto_thread_cleanup(void)
{
#ifdef NEW_THREAD_API
ERR_remove_thread_state();
#else
#ifndef NEW_THREAD_API
ERR_remove_thread_state(NULL);
#endif
}
......@@ -3193,9 +3196,7 @@ int
crypto_global_cleanup(void)
{
EVP_cleanup();
#ifdef NEW_THREAD_API
ERR_remove_thread_state();
#else
#ifndef NEW_THREAD_API
ERR_remove_thread_state(NULL);
#endif
ERR_free_strings();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment