mirror of https://github.com/openssl/openssl.git
Fix a memory leak in ecdh/ecdsa_check.
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3825)
This commit is contained in:
parent
282c132196
commit
0cfb422656
|
|
@ -225,9 +225,16 @@ ECDH_DATA *ecdh_check(EC_KEY *key)
|
|||
*/
|
||||
ecdh_data_free(ecdh_data);
|
||||
ecdh_data = (ECDH_DATA *)data;
|
||||
} else if (EC_KEY_get_key_method_data(key, ecdh_data_dup,
|
||||
ecdh_data_free,
|
||||
ecdh_data_free) != ecdh_data) {
|
||||
/* Or an out of memory error in EC_KEY_insert_key_method_data. */
|
||||
ecdh_data_free(ecdh_data);
|
||||
return NULL;
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
ecdh_data = (ECDH_DATA *)data;
|
||||
}
|
||||
#ifdef OPENSSL_FIPS
|
||||
if (FIPS_mode() && !(ecdh_data->flags & ECDH_FLAG_FIPS_METHOD)
|
||||
&& !(EC_KEY_get_flags(key) & EC_FLAG_NON_FIPS_ALLOW)) {
|
||||
|
|
|
|||
|
|
@ -203,9 +203,16 @@ ECDSA_DATA *ecdsa_check(EC_KEY *key)
|
|||
*/
|
||||
ecdsa_data_free(ecdsa_data);
|
||||
ecdsa_data = (ECDSA_DATA *)data;
|
||||
} else if (EC_KEY_get_key_method_data(key, ecdsa_data_dup,
|
||||
ecdsa_data_free,
|
||||
ecdsa_data_free) != ecdsa_data) {
|
||||
/* Or an out of memory error in EC_KEY_insert_key_method_data. */
|
||||
ecdsa_data_free(ecdsa_data);
|
||||
return NULL;
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
ecdsa_data = (ECDSA_DATA *)data;
|
||||
}
|
||||
#ifdef OPENSSL_FIPS
|
||||
if (FIPS_mode() && !(ecdsa_data->flags & ECDSA_FLAG_FIPS_METHOD)
|
||||
&& !(EC_KEY_get_flags(key) & EC_FLAG_NON_FIPS_ALLOW)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue