Fix possible race condition.

This commit is contained in:
Dr. Stephen Henson
2005-11-11 12:59:39 +00:00
parent 43e9f4ca2f
commit 8860f3a82a

View File

@@ -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;