X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fevp%2Fevp_test.c;h=7706ee135ea4bff90fc7ff5a7df927de8b4e1b44;hp=e3a1693c61cc0c9a2422a36c5427acb7aca18756;hb=f9e31463923dae15f23cc53b1d72e5a768e37fbc;hpb=5824cc298174d462c827cd090675e30fc03f0caf diff --git a/crypto/evp/evp_test.c b/crypto/evp/evp_test.c index e3a1693c61..7706ee135e 100644 --- a/crypto/evp/evp_test.c +++ b/crypto/evp/evp_test.c @@ -208,7 +208,7 @@ struct evp_test_method { }; static const struct evp_test_method digest_test_method, cipher_test_method; -static const struct evp_test_method aead_test_method, mac_test_method; +static const struct evp_test_method mac_test_method; static const struct evp_test_method psign_test_method, pverify_test_method; static const struct evp_test_method pdecrypt_test_method; static const struct evp_test_method pverify_recover_test_method; @@ -298,11 +298,8 @@ static int setup_test(struct evp_test *t, const struct evp_test_method *tmeth) } ERR_clear_error(); t->meth->cleanup(t); - /* If new test type free old data */ - if (tmeth != t->meth && t->data) { - OPENSSL_free(t->data); - t->data = NULL; - } + OPENSSL_free(t->data); + t->data = NULL; if (t->expected_err) { OPENSSL_free(t->expected_err); t->expected_err = NULL; @@ -323,9 +320,13 @@ static EVP_PKEY *find_key(const char *name, struct key_list *lst) static void free_key_list(struct key_list *lst) { - for (; lst; lst = lst->next) { + while (lst != NULL) { + struct key_list *ltmp; EVP_PKEY_free(lst->key); OPENSSL_free(lst->name); + ltmp = lst->next; + OPENSSL_free(lst); + lst = ltmp; } } @@ -449,6 +450,8 @@ int main(int argc, char **argv) return 1; } + CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); + ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); t.meth = NULL; @@ -477,6 +480,11 @@ int main(int argc, char **argv) free_key_list(t.public); free_key_list(t.private); fclose(in); + EVP_cleanup(); + CRYPTO_cleanup_all_ex_data(); + ERR_remove_thread_state(NULL); + ERR_free_strings(); + CRYPTO_mem_leaks_fp(stderr); if (t.errors) return 1; return 0;