X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fssl_init.c;h=134aa00d546aae266777f81bb8de18d0c5499518;hp=67e431941a5bcbf1a994876519a686f94a418434;hb=0fc32b0718ec210e03b6d8623d4819ed04615a1b;hpb=8bd8221be80708825ddb9771d4c9fff67860119b diff --git a/ssl/ssl_init.c b/ssl/ssl_init.c index 67e431941a..134aa00d54 100644 --- a/ssl/ssl_init.c +++ b/ssl/ssl_init.c @@ -299,13 +299,14 @@ static void ssl_library_stop(void) * called prior to any threads making calls to any OpenSSL functions, * i.e. passing a non-null settings value is assumed to be single-threaded. */ -void OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) +int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) { - /* XXX TODO WARNING To be updated to return a value not assert. */ - assert(!stopped); + if (stopped) + return 0; - OPENSSL_init_crypto(opts | OPENSSL_INIT_ADD_ALL_CIPHERS - | OPENSSL_INIT_ADD_ALL_DIGESTS, settings); + if (!OPENSSL_init_crypto(opts | OPENSSL_INIT_ADD_ALL_CIPHERS + | OPENSSL_INIT_ADD_ALL_DIGESTS, settings)) + return 0; ossl_init_once_run(&ssl_base, ossl_init_ssl_base); @@ -314,5 +315,7 @@ void OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) if (opts & OPENSSL_INIT_LOAD_SSL_STRINGS) ossl_init_once_run(&ssl_strings, ossl_init_load_ssl_strings); + + return 1; }