projects
/
openssl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0e73294
)
Another thread-safety fix
author
Bodo Möller
<bodo@openssl.org>
Fri, 16 Jun 2006 01:01:14 +0000
(
01:01
+0000)
committer
Bodo Möller
<bodo@openssl.org>
Fri, 16 Jun 2006 01:01:14 +0000
(
01:01
+0000)
crypto/bn/bn_mont.c
patch
|
blob
|
history
diff --git
a/crypto/bn/bn_mont.c
b/crypto/bn/bn_mont.c
index 153f8d8e0015d6d1242c38da434379dfbf509ce3..961ca67ea1f586792186d965539c46fd96914f97 100644
(file)
--- a/
crypto/bn/bn_mont.c
+++ b/
crypto/bn/bn_mont.c
@@
-407,6
+407,7
@@
BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock,
const BIGNUM *mod, BN_CTX *ctx)
{
int got_write_lock = 0;
const BIGNUM *mod, BN_CTX *ctx)
{
int got_write_lock = 0;
+ BN_MONT_CTX *ret;
CRYPTO_r_lock(lock);
if (!*pmont)
CRYPTO_r_lock(lock);
if (!*pmont)
@@
-417,19
+418,20
@@
BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock,
if (!*pmont)
{
if (!*pmont)
{
- BN_MONT_CTX *mtmp;
- mtmp = BN_MONT_CTX_new();
- if (mtmp && !BN_MONT_CTX_set(mtmp, mod, ctx))
- BN_MONT_CTX_free(mtmp);
+ ret = BN_MONT_CTX_new();
+ if (ret && !BN_MONT_CTX_set(ret, mod, ctx))
+ BN_MONT_CTX_free(ret);
else
else
- *pmont =
mtmp
;
+ *pmont =
ret
;
}
}
}
}
+ ret = *pmont;
+
if (got_write_lock)
CRYPTO_w_unlock(lock);
else
CRYPTO_r_unlock(lock);
if (got_write_lock)
CRYPTO_w_unlock(lock);
else
CRYPTO_r_unlock(lock);
- return
*pmon
t;
+ return
re
t;
}
}