summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2005-11-11 12:59:39 +0000
committerDr. Stephen Henson <steve@openssl.org>2005-11-11 12:59:39 +0000
commit8860f3a82acb0fad6cdeafb5eca9ca22b5b232e0 (patch)
treed759a393dc822e88d9d26be57c9b1147c8a467da /crypto
parent43e9f4ca2f5a45832a96e5252858dd9b739eef94 (diff)
Fix possible race condition.
Diffstat (limited to 'crypto')
-rw-r--r--crypto/bn/bn_mont.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/crypto/bn/bn_mont.c b/crypto/bn/bn_mont.c
index 82af91f90d..42376dae6b 100644
--- a/crypto/bn/bn_mont.c
+++ b/crypto/bn/bn_mont.c
@@ -358,12 +358,12 @@ BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock,
CRYPTO_w_lock(lock);
if (!*pmont)
{
- *pmont = BN_MONT_CTX_new();
- if (*pmont && !BN_MONT_CTX_set(*pmont, mod, ctx))
- {
- BN_MONT_CTX_free(*pmont);
- *pmont = NULL;
- }
+ BN_MONT_CTX *mtmp;
+ mtmp = BN_MONT_CTX_new();
+ if (mtmp && !BN_MONT_CTX_set(mtmp, mod, ctx))
+ BN_MONT_CTX_free(mtmp);
+ else
+ *pmont = mtmp;
}
CRYPTO_w_unlock(lock);
return *pmont;