In CRYPTO_lock(), check that the application cares about locking (provided

callbacks) before attempting to lock.
This commit is contained in:
Richard Levitte 2002-12-11 08:56:35 +00:00
parent 442d42300b
commit b9b6e14b4a

View File

@ -471,19 +471,19 @@ void CRYPTO_lock(int mode, int type, const char *file, int line)
} }
#endif #endif
if (type < 0) if (type < 0)
{
if (dynlock_lock_callback != NULL)
{ {
struct CRYPTO_dynlock_value *pointer struct CRYPTO_dynlock_value *pointer
= CRYPTO_get_dynlock_value(type); = CRYPTO_get_dynlock_value(type);
OPENSSL_assert(pointer != NULL); OPENSSL_assert(pointer != NULL);
if (dynlock_lock_callback)
{
dynlock_lock_callback(mode, pointer, file, line); dynlock_lock_callback(mode, pointer, file, line);
}
CRYPTO_destroy_dynlockid(type); CRYPTO_destroy_dynlockid(type);
} }
}
else else
if (locking_callback != NULL) if (locking_callback != NULL)
locking_callback(mode,type,file,line); locking_callback(mode,type,file,line);