diff --git a/apps/apps.h b/apps/apps.h index 869b13d7a9d3b0a73ef8e8c1ed0d4b7054080564..191097ffa7c18e208044590c83121404a160d603 100644 --- a/apps/apps.h +++ b/apps/apps.h @@ -126,21 +126,26 @@ extern BIO *bio_err; # ifdef _O_BINARY # define apps_startup() \ do { _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ + ERR_load_crypto_strings(); \ OpenSSL_add_all_algorithms(); ENGINE_load_builtin_engines(); \ setup_ui_method(); } while(0) # else # define apps_startup() \ do { _fmode=O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ + ERR_load_crypto_strings(); \ OpenSSL_add_all_algorithms(); ENGINE_load_builtin_engines(); \ setup_ui_method(); } while(0) # endif # else # define apps_startup() \ do { do_pipe_sig(); OpenSSL_add_all_algorithms(); \ + ERR_load_crypto_strings(); \ ENGINE_load_builtin_engines(); setup_ui_method(); } while(0) # endif # define apps_shutdown() \ - do { destroy_ui_method(); CRYPTO_cleanup_all_ex_data(); } while(0) + do { destroy_ui_method(); EVP_cleanup(); \ + ENGINE_cleanup(); CRYPTO_cleanup_all_ex_data(); \ + ERR_remove_state(0); ERR_free_strings(); } while(0) #endif typedef struct args_st diff --git a/apps/openssl.c b/apps/openssl.c index d34169d3f3865e014ea4ccb0bce477096887fc59..0e179d9c339152a6eb669e9ce454360fe71d1c8a 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -255,9 +255,6 @@ int main(int Argc, char *Argv[]) if ((bio_err=BIO_new(BIO_s_file())) != NULL) BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT); - ERR_load_crypto_strings(); - ENGINE_load_builtin_engines(); - /* Lets load up our environment a little */ p=getenv("OPENSSL_CONF"); if (p == NULL) @@ -350,12 +347,6 @@ end: } if (prog != NULL) lh_free(prog); if (arg.data != NULL) OPENSSL_free(arg.data); - ERR_remove_state(0); - - EVP_cleanup(); - ERR_free_strings(); - - ENGINE_cleanup(); apps_shutdown();