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:38 +00:00
parent 9576c150a4
commit a01461da99

View file

@ -409,18 +409,17 @@ void CRYPTO_lock(int mode, int type, const char *file, int line)
#endif #endif
if (type < 0) if (type < 0)
{ {
int i = -type - 1; if (dynlock_lock_callback != NULL)
struct CRYPTO_dynlock_value *pointer
= CRYPTO_get_dynlock_value(i);
assert(pointer != NULL);
if (dynlock_lock_callback)
{ {
dynlock_lock_callback(mode, pointer, file, line); struct CRYPTO_dynlock_value *pointer
} = CRYPTO_get_dynlock_value(type);
CRYPTO_destroy_dynlockid(i); assert(pointer != NULL);
dynlock_lock_callback(mode, pointer, file, line);
CRYPTO_destroy_dynlockid(type);
}
} }
else else
if (locking_callback != NULL) if (locking_callback != NULL)