[tor-commits] [tor/maint-0.3.5] Do not define OPENSSL_VERSION in compat_openssl.h

dgoulet at torproject.org dgoulet at torproject.org
Thu Jan 28 17:07:05 UTC 2021


commit 2b4a3d07b25ae9c284a1f130de71940242b78bb7
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Oct 28 10:32:06 2020 -0400

    Do not define OPENSSL_VERSION in compat_openssl.h
    
    Apparently it conflicts with definitions elsewhere in Openssl 3.0.0.
---
 src/lib/crypt_ops/compat_openssl.h     |  5 -----
 src/lib/crypt_ops/crypto_openssl_mgt.c | 13 +++++++++++--
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/lib/crypt_ops/compat_openssl.h b/src/lib/crypt_ops/compat_openssl.h
index 9c10386c34..6605d01045 100644
--- a/src/lib/crypt_ops/compat_openssl.h
+++ b/src/lib/crypt_ops/compat_openssl.h
@@ -32,10 +32,6 @@
 #define OPENSSL_1_1_API
 #endif /* OPENSSL_VERSION_NUMBER >= OPENSSL_V_SERIES(1,1,0) && ... */
 
-#ifndef OPENSSL_VERSION
-#define OPENSSL_VERSION SSLEAY_VERSION
-#endif
-
 #ifndef OPENSSL_1_1_API
 #define OpenSSL_version(v) SSLeay_version(v)
 #define OpenSSL_version_num() SSLeay()
@@ -54,4 +50,3 @@
 #endif /* defined(ENABLE_OPENSSL) */
 
 #endif /* !defined(TOR_COMPAT_OPENSSL_H) */
-
diff --git a/src/lib/crypt_ops/crypto_openssl_mgt.c b/src/lib/crypt_ops/crypto_openssl_mgt.c
index c97815f9a4..e7d6084f6c 100644
--- a/src/lib/crypt_ops/crypto_openssl_mgt.c
+++ b/src/lib/crypt_ops/crypto_openssl_mgt.c
@@ -101,13 +101,22 @@ static char *crypto_openssl_version_str = NULL;
 const char *
 crypto_openssl_get_version_str(void)
 {
+#ifdef OPENSSL_VERSION
+  const int query = OPENSSL_VERSION;
+#else
+  /* This old name was changed around OpenSSL 1.1.0 */
+  const int query = SSLEAY_VERSION;
+#endif
+
   if (crypto_openssl_version_str == NULL) {
-    const char *raw_version = OpenSSL_version(OPENSSL_VERSION);
+    const char *raw_version = OpenSSL_version(query);
     crypto_openssl_version_str = parse_openssl_version_str(raw_version);
   }
   return crypto_openssl_version_str;
 }
 
+#undef QUERY_OPENSSL_VERSION
+
 static char *crypto_openssl_header_version_str = NULL;
 /* Return a human-readable version of the compile-time openssl version
 * number. */
@@ -208,7 +217,7 @@ crypto_openssl_early_init(void)
     setup_openssl_threading();
 
     unsigned long version_num = OpenSSL_version_num();
-    const char *version_str = OpenSSL_version(OPENSSL_VERSION);
+    const char *version_str = crypto_openssl_get_version_str();
     if (version_num == OPENSSL_VERSION_NUMBER &&
         !strcmp(version_str, OPENSSL_VERSION_TEXT)) {
       log_info(LD_CRYPTO, "OpenSSL version matches version from headers "





More information about the tor-commits mailing list