--On Wednesday, October 03, 2012 10:41 AM +0200 Ben Hendrickson via RT
<[email protected]> wrote:
I am using openssl-1.0.1c, and found a deadlock when using the library.
In function X509_PUBKEY_get (xpubkey.c:175) it locks
CRYPTO_LOCK_EVP_PKEY. Three lines later (so xpubkey.c:178), it calls
EVP_PKEY_free which also locks CRYPTO_LOCK_EVP_PKEY (p_lib.c: 393).
This behavior is fine if the user is providing OpenSSL with recursive
mutexes, but I gather from the example code mttest.c that recursive
mutexes are not required, as it creates non-recursive pthread mutexes.
Here is a callstack from a deadlocked thread at this point
(codulus::SSLLockingCallback is my user provided locking callback):
# 5 0x000000000044b1eb in codulus::SSLLockingCallback (mode=9,
type=10, file=0x68eead "p_lib.c", line=393)
at ../..//util/ssl.cc:19
# 6 0x000000000045f198 in CRYPTO_add_lock ()
# 7 0x00000000004d0687 in EVP_PKEY_free ()
# 8 0x00000000005ff020 in X509_PUBKEY_get ()
# 9 0x00000000004e5c01 in internal_verify ()
# 10 0x00000000004e65bf in X509_verify_cert ()
# 11 0x0000000000472720 in ssl_verify_cert_chain ()
# 12 0x0000000000507d7b in ssl3_get_server_certificate ()
# 13 0x000000000050c184 in ssl3_connect ()
# 14 0x0000000000465d87 in ssl23_connect ()
# 15 0x0000000000466741 in ssl23_write ()
Dupe of 2866?
--Quanah
--
Quanah Gibson-Mount
Sr. Member of Technical Staff
Zimbra, Inc
A Division of VMware, Inc.
--------------------
Zimbra :: the leader in open source messaging and collaboration
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]