-diff --git a/src/lib-dcrypt/dcrypt-openssl.c b/src/lib-dcrypt/dcrypt-openssl.c
-index c2dbd30..201ab40 100644
--- a/src/lib-dcrypt/dcrypt-openssl.c
+++ b/src/lib-dcrypt/dcrypt-openssl.c
@@ -20,6 +20,7 @@
#include "dcrypt.h"
#include "dcrypt-private.h"
-diff --git a/src/lib-ssl-iostream/iostream-openssl-context.c b/src/lib-ssl-iostream/iostream-openssl-context.c
-index e3c902e..ad6a9c1 100644
+--- a/src/lib-ssl-iostream/dovecot-openssl-common.c
++++ b/src/lib-ssl-iostream/dovecot-openssl-common.c
+@@ -79,6 +79,7 @@ bool dovecot_openssl_common_global_unref(void)
+ ENGINE_finish(dovecot_openssl_engine);
+ dovecot_openssl_engine = NULL;
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ /* OBJ_cleanup() is called automatically by EVP_cleanup() in
+ newer versions. Doesn't hurt to call it anyway. */
+ OBJ_cleanup();
+@@ -100,6 +101,7 @@ bool dovecot_openssl_common_global_unref(void)
+ ERR_free_strings();
+ #ifdef HAVE_OPENSSL_CLEANUP
+ OPENSSL_cleanup();
++#endif
+ #endif
+ return FALSE;
+ }
--- a/src/lib-ssl-iostream/iostream-openssl-context.c
+++ b/src/lib-ssl-iostream/iostream-openssl-context.c
@@ -6,6 +6,9 @@
#ifdef HAVE_SSL_NEW_MEM_FUNCS
static void *dovecot_openssl_malloc(size_t size, const char *u0 ATTR_UNUSED, int u1 ATTR_UNUSED)
-@@ -75,17 +78,21 @@ bool dovecot_openssl_common_global_unref(void)
+@@ -75,10 +78,12 @@ bool dovecot_openssl_common_global_unref(void)
if (--openssl_init_refcount > 0)
return TRUE;
dovecot_openssl_engine = NULL;
}
+#endif
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
/* OBJ_cleanup() is called automatically by EVP_cleanup() in
newer versions. Doesn't hurt to call it anyway. */
- OBJ_cleanup();
+@@ -86,7 +91,9 @@ bool dovecot_openssl_common_global_unref(void)
#ifdef HAVE_SSL_COMP_FREE_COMPRESSION_METHODS
SSL_COMP_free_compression_methods();
#endif
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();
#ifdef HAVE_OPENSSL_AUTO_THREAD_DEINIT
-@@ -107,6 +114,7 @@ bool dovecot_openssl_common_global_unref(void)
+@@ -109,6 +116,7 @@ bool dovecot_openssl_common_global_unref(void)
int dovecot_openssl_common_global_set_engine(const char *engine,
const char **error_r)
{
if (dovecot_openssl_engine != NULL)
return 1;
-@@ -128,5 +136,6 @@ int dovecot_openssl_common_global_set_engine(const char *engine,
+@@ -130,5 +138,6 @@ int dovecot_openssl_common_global_set_engine(const char *engine,
dovecot_openssl_engine = NULL;
return -1;
}