diff options
| author | Gary Ching-Pang Lin <glin@suse.com> | 2014-07-14 09:03:36 -0400 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2014-07-14 09:03:36 -0400 |
| commit | f9368474dd80b630adf745314b0336c16a35b0ad (patch) | |
| tree | b82d269a6f732af91e6b599003888d8b10a13bf2 /Cryptlib/OpenSSL/crypto/ec/ec_key.c | |
| parent | 875eb1b9d501d853b2c44f86a32a51b59f85eef9 (diff) | |
| download | efi-boot-shim-f9368474dd80b630adf745314b0336c16a35b0ad.tar.gz efi-boot-shim-f9368474dd80b630adf745314b0336c16a35b0ad.zip | |
Update openssl to 0.9.8za
Also update to Tiano Cryptlib r15638
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/ec/ec_key.c')
| -rwxr-xr-x | Cryptlib/OpenSSL/crypto/ec/ec_key.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Cryptlib/OpenSSL/crypto/ec/ec_key.c b/Cryptlib/OpenSSL/crypto/ec/ec_key.c index 522802c0..6c933d22 100755 --- a/Cryptlib/OpenSSL/crypto/ec/ec_key.c +++ b/Cryptlib/OpenSSL/crypto/ec/ec_key.c @@ -435,18 +435,27 @@ void EC_KEY_set_conv_form(EC_KEY *key, point_conversion_form_t cform) void *EC_KEY_get_key_method_data(EC_KEY *key, void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)) { - return EC_EX_DATA_get_data(key->method_data, dup_func, free_func, clear_free_func); + void *ret; + + CRYPTO_r_lock(CRYPTO_LOCK_EC); + ret = EC_EX_DATA_get_data(key->method_data, dup_func, free_func, clear_free_func); + CRYPTO_r_unlock(CRYPTO_LOCK_EC); + + return ret; } -void EC_KEY_insert_key_method_data(EC_KEY *key, void *data, +void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)) { EC_EXTRA_DATA *ex_data; + CRYPTO_w_lock(CRYPTO_LOCK_EC); ex_data = EC_EX_DATA_get_data(key->method_data, dup_func, free_func, clear_free_func); if (ex_data == NULL) EC_EX_DATA_set_data(&key->method_data, data, dup_func, free_func, clear_free_func); CRYPTO_w_unlock(CRYPTO_LOCK_EC); + + return ex_data; } void EC_KEY_set_asn1_flag(EC_KEY *key, int flag) |
