projects
/
openssl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e29246c
)
Protect loading routines with a lock.
author
Richard Levitte
<levitte@openssl.org>
Mon, 16 Dec 2002 06:06:03 +0000
(06:06 +0000)
committer
Richard Levitte
<levitte@openssl.org>
Mon, 16 Dec 2002 06:06:03 +0000
(06:06 +0000)
PR: 373
ssl/ssl_ciph.c
patch
|
blob
|
history
diff --git
a/ssl/ssl_ciph.c
b/ssl/ssl_ciph.c
index 43abea1a7d951cec12b32b3d680d3b2380d09bb3..d4f86f6ed90d31ba972212fc74527848cd5736b0 100644
(file)
--- a/
ssl/ssl_ciph.c
+++ b/
ssl/ssl_ciph.c
@@
-197,6
+197,10
@@
static int sk_comp_cmp(const SSL_COMP * const *a,
static void load_builtin_compressions(void)
{
static void load_builtin_compressions(void)
{
+ if (ssl_comp_methods != NULL)
+ return;
+
+ CRYPTO_w_lock(CRYPTO_LOCK_SSL);
if (ssl_comp_methods == NULL)
{
SSL_COMP *comp = NULL;
if (ssl_comp_methods == NULL)
{
SSL_COMP *comp = NULL;
@@
-222,6
+226,7
@@
static void load_builtin_compressions(void)
}
MemCheck_on();
}
}
MemCheck_on();
}
+ CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
}
int ssl_cipher_get_evp(SSL_SESSION *s, const EVP_CIPHER **enc,
}
int ssl_cipher_get_evp(SSL_SESSION *s, const EVP_CIPHER **enc,
@@
-793,7
+798,12
@@
STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method,
*/
if (rule_str == NULL) return(NULL);
*/
if (rule_str == NULL) return(NULL);
- if (init_ciphers) load_ciphers();
+ if (init_ciphers)
+ {
+ CRYPTO_w_lock(CRYPTO_LOCK_SSL);
+ if (init_ciphers) load_ciphers();
+ CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
+ }
/*
* To reduce the work to do we only want to process the compiled
/*
* To reduce the work to do we only want to process the compiled