From 770cc380ebcd40b6a05fcd558a34bfe943a1eabe Mon Sep 17 00:00:00 2001 From: Jiayang Liu Date: Thu, 28 May 2015 15:36:29 -0700 Subject: [PATCH] Don't call CRYPTO_add in BoringSSL. The old OpenSSL threading hooks were removed in favor of the library knowing about threads internally. Instead of CRYPTO_add, use FOO_up_ref wrappers that don't require reaching into the type. BUG=none R=jiayl@webrtc.org, juberti@google.com Review URL: https://webrtc-codereview.appspot.com/54579004 Cr-Commit-Position: refs/heads/master@{#9324} --- webrtc/base/opensslidentity.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/webrtc/base/opensslidentity.cc b/webrtc/base/opensslidentity.cc index 9daad9baa..dbb040ecf 100644 --- a/webrtc/base/opensslidentity.cc +++ b/webrtc/base/opensslidentity.cc @@ -157,7 +157,11 @@ OpenSSLKeyPair* OpenSSLKeyPair::GetReference() { } void OpenSSLKeyPair::AddReference() { +#if defined(OPENSSL_IS_BORINGSSL) + EVP_PKEY_up_ref(pkey_); +#else CRYPTO_add(&pkey_->references, 1, CRYPTO_LOCK_EVP_PKEY); +#endif } #ifdef _DEBUG @@ -341,7 +345,11 @@ void OpenSSLCertificate::ToDER(Buffer* der_buffer) const { void OpenSSLCertificate::AddReference() const { ASSERT(x509_ != NULL); +#if defined(OPENSSL_IS_BORINGSSL) + X509_up_ref(x509_); +#else CRYPTO_add(&x509_->references, 1, CRYPTO_LOCK_X509); +#endif } OpenSSLIdentity::OpenSSLIdentity(OpenSSLKeyPair* key_pair,