In CRYPTO_lock(), check that the application cares about locking (provided
callbacks) before attempting to lock.
This commit is contained in:
parent
9576c150a4
commit
a01461da99
1 changed files with 9 additions and 10 deletions
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue