eng_devcrypto: don't leak methods tables
authorEneas U de Queiroz <cote2004-github@yahoo.com>
Mon, 5 Nov 2018 19:59:42 +0000 (17:59 -0200)
committerRichard Levitte <levitte@openssl.org>
Mon, 10 Dec 2018 12:19:26 +0000 (13:19 +0100)
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 <cote2004-github@yahoo.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7585)

crypto/engine/eng_devcrypto.c

index 6bba6e2248d23b52217973a36cf51428efb60be0..d54ac5ec5b199fe4769b7d61701d405a97146e76 100644 (file)
@@ -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")