Fix Dynamic engine loading so that the call to ENGINE_load_builtin_engines() is perfo...
authorShane Lontis <shane.lontis@oracle.com>
Tue, 14 Apr 2020 02:25:34 +0000 (12:25 +1000)
committerDmitry Belyavskiy <beldmit@gmail.com>
Wed, 15 Apr 2020 08:09:04 +0000 (11:09 +0300)
Fixes #11510

PR #11240 Added support for passing the libctx to the config loader.
As part of this work the call to OPENSSL_load_builtin_modules() + ENGINE_load_builtin_engines() was deferred until module_run() is called.
The call to ENGINE_load_builtin_engines() has been added to ENGINE_by_id().

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/11543)

crypto/engine/eng_list.c

index 7659231e5680f6d064e3ac7d916ee2e7bd8aa31e..4bd00592330b61f67debf3af091f98cf1c42f294 100644 (file)
@@ -282,6 +282,8 @@ ENGINE *ENGINE_by_id(const char *id)
         ENGINEerr(ENGINE_F_ENGINE_BY_ID, ERR_R_PASSED_NULL_PARAMETER);
         return NULL;
     }
+    ENGINE_load_builtin_engines();
+
     if (!RUN_ONCE(&engine_lock_init, do_engine_lock_init)) {
         ENGINEerr(ENGINE_F_ENGINE_BY_ID, ERR_R_MALLOC_FAILURE);
         return NULL;