diff options
Diffstat (limited to 'src/lib/libcrypto/ecdh')
| -rw-r--r-- | src/lib/libcrypto/ecdh/ech_key.c | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/ecdh/ech_lib.c | 11 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/libcrypto/ecdh/ech_key.c b/src/lib/libcrypto/ecdh/ech_key.c index f44da9298b..2988899ea2 100644 --- a/src/lib/libcrypto/ecdh/ech_key.c +++ b/src/lib/libcrypto/ecdh/ech_key.c | |||
| @@ -68,9 +68,6 @@ | |||
| 68 | */ | 68 | */ |
| 69 | 69 | ||
| 70 | #include "ech_locl.h" | 70 | #include "ech_locl.h" |
| 71 | #ifndef OPENSSL_NO_ENGINE | ||
| 72 | #include <openssl/engine.h> | ||
| 73 | #endif | ||
| 74 | 71 | ||
| 75 | int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | 72 | int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, |
| 76 | EC_KEY *eckey, | 73 | EC_KEY *eckey, |
diff --git a/src/lib/libcrypto/ecdh/ech_lib.c b/src/lib/libcrypto/ecdh/ech_lib.c index dadbfd3c49..0644431b75 100644 --- a/src/lib/libcrypto/ecdh/ech_lib.c +++ b/src/lib/libcrypto/ecdh/ech_lib.c | |||
| @@ -222,8 +222,15 @@ ECDH_DATA *ecdh_check(EC_KEY *key) | |||
| 222 | ecdh_data = (ECDH_DATA *)ecdh_data_new(); | 222 | ecdh_data = (ECDH_DATA *)ecdh_data_new(); |
| 223 | if (ecdh_data == NULL) | 223 | if (ecdh_data == NULL) |
| 224 | return NULL; | 224 | return NULL; |
| 225 | EC_KEY_insert_key_method_data(key, (void *)ecdh_data, | 225 | data = EC_KEY_insert_key_method_data(key, (void *)ecdh_data, |
| 226 | ecdh_data_dup, ecdh_data_free, ecdh_data_free); | 226 | ecdh_data_dup, ecdh_data_free, ecdh_data_free); |
| 227 | if (data != NULL) | ||
| 228 | { | ||
| 229 | /* Another thread raced us to install the key_method | ||
| 230 | * data and won. */ | ||
| 231 | ecdh_data_free(ecdh_data); | ||
| 232 | ecdh_data = (ECDH_DATA *)data; | ||
| 233 | } | ||
| 227 | } | 234 | } |
| 228 | else | 235 | else |
| 229 | ecdh_data = (ECDH_DATA *)data; | 236 | ecdh_data = (ECDH_DATA *)data; |
