diff options
author | David Benjamin <davidben@chromium.org> | 2015-12-05 07:14:35 +0300 |
---|---|---|
committer | Adam Langley <agl@google.com> | 2015-12-16 00:29:46 +0300 |
commit | 8a58933db02f5059202709807562bae0d6633fdb (patch) | |
tree | 0f442b4aed457b2dfc41fe41075e4303237f61ef /crypto/dsa | |
parent | 0abd6f2eb6eeb1a780f9f37bcdc4ebf5298d8cb8 (diff) |
Remove the CRYPTO_EX_new callback.
This callback is never used. The one caller I've ever seen is in Android
code which isn't built with BoringSSL and it was a no-op.
It also doesn't actually make much sense. A callback cannot reasonably
assume that it sees every, say, SSL_CTX created because the index may be
registered after the first SSL_CTX is created. Nor is there any point in
an EX_DATA consumer in one file knowing about an SSL_CTX created in
completely unrelated code.
Replace all the pointers with a typedef to int*. This will ensure code
which passes NULL or 0 continues to compile while breaking code which
passes an actual function.
This simplifies some object creation functions which now needn't worry
about CRYPTO_new_ex_data failing. (Also avoids bouncing on the lock, but
it's taking a read lock, so this doesn't really matter.)
BUG=391192
Change-Id: I02893883c6fa8693682075b7b130aa538a0a1437
Reviewed-on: https://boringssl-review.googlesource.com/6625
Reviewed-by: Adam Langley <agl@google.com>
Diffstat (limited to 'crypto/dsa')
-rw-r--r-- | crypto/dsa/dsa.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/crypto/dsa/dsa.c b/crypto/dsa/dsa.c index ceffd1ad..5bf031e1 100644 --- a/crypto/dsa/dsa.c +++ b/crypto/dsa/dsa.c @@ -98,12 +98,7 @@ DSA *DSA_new(void) { dsa->references = 1; CRYPTO_MUTEX_init(&dsa->method_mont_p_lock); - - if (!CRYPTO_new_ex_data(&g_ex_data_class, dsa, &dsa->ex_data)) { - CRYPTO_MUTEX_cleanup(&dsa->method_mont_p_lock); - OPENSSL_free(dsa); - return NULL; - } + CRYPTO_new_ex_data(&dsa->ex_data); return dsa; } @@ -864,11 +859,11 @@ err: return ret; } -int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, +int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_unused *unused, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func) { int index; - if (!CRYPTO_get_ex_new_index(&g_ex_data_class, &index, argl, argp, new_func, - dup_func, free_func)) { + if (!CRYPTO_get_ex_new_index(&g_ex_data_class, &index, argl, argp, dup_func, + free_func)) { return -1; } return index; |