Fix possible race condition.
This commit is contained in:
@@ -358,12 +358,12 @@ BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock,
|
|||||||
CRYPTO_w_lock(lock);
|
CRYPTO_w_lock(lock);
|
||||||
if (!*pmont)
|
if (!*pmont)
|
||||||
{
|
{
|
||||||
*pmont = BN_MONT_CTX_new();
|
BN_MONT_CTX *mtmp;
|
||||||
if (*pmont && !BN_MONT_CTX_set(*pmont, mod, ctx))
|
mtmp = BN_MONT_CTX_new();
|
||||||
{
|
if (mtmp && !BN_MONT_CTX_set(mtmp, mod, ctx))
|
||||||
BN_MONT_CTX_free(*pmont);
|
BN_MONT_CTX_free(mtmp);
|
||||||
*pmont = NULL;
|
else
|
||||||
}
|
*pmont = mtmp;
|
||||||
}
|
}
|
||||||
CRYPTO_w_unlock(lock);
|
CRYPTO_w_unlock(lock);
|
||||||
return *pmont;
|
return *pmont;
|
||||||
|
|||||||
Reference in New Issue
Block a user