From: Eneas U de Queiroz Date: Mon, 5 Nov 2018 19:59:42 +0000 (-0200) Subject: eng_devcrypto: don't leak methods tables X-Git-Tag: OpenSSL_1_1_1b~132 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=be5cf61caa425070ec4f3e925d4e9aa484c8315b;p=oweals%2Fopenssl.git eng_devcrypto: don't leak methods tables Call functions to prepare methods after confirming that /dev/crytpo was sucessfully open and that the destroy function has been set. Signed-off-by: Eneas U de Queiroz Reviewed-by: Matthias St. Pierre Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7585) (cherry picked from commit d9d4dff5c640990d45af115353fc9f88a497a56c) --- diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c index 4a0ba09a38..ee26398b69 100644 --- a/crypto/engine/eng_devcrypto.c +++ b/crypto/engine/eng_devcrypto.c @@ -619,11 +619,6 @@ void engine_load_devcrypto_int() return; } - prepare_cipher_methods(); -#ifdef IMPLEMENT_DIGEST - prepare_digest_methods(); -#endif - if ((e = ENGINE_new()) == NULL || !ENGINE_set_destroy_function(e, devcrypto_unload)) { ENGINE_free(e); @@ -636,6 +631,11 @@ void engine_load_devcrypto_int() return; } + prepare_cipher_methods(); +#ifdef IMPLEMENT_DIGEST + prepare_digest_methods(); +#endif + if (!ENGINE_set_id(e, "devcrypto") || !ENGINE_set_name(e, "/dev/crypto engine")