From: Matt Hauck Date: Wed, 13 Jul 2016 18:27:40 +0000 (-0700) Subject: Fix statically linked engine initialization w/ fips X-Git-Tag: OpenSSL_1_0_2l~97 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=28903862fb0d6351dd88522950375ed44c10d1ba;p=openssl Fix statically linked engine initialization w/ fips This only manifested itself with FIPS enabled statically linked engines. The OPENSSL_init call ended up invoking RAND_init_fips for a FIPS enabled build, which called CRYPTO_malloc, resulting in disallowing the engine to finish its IMPLEMENT_DYNAMIC_BIND_FN call. (Merged from https://github.com/openssl/openssl/pull/1308)Reviewed-by: Geoff Thorpe Reviewed-by: Richard Levitte CLA: trivial (Merged from https://github.com/openssl/openssl/pull/1308) --- diff --git a/crypto/mem.c b/crypto/mem.c index 06c3960cc6..dd4c9ce9e0 100644 --- a/crypto/mem.c +++ b/crypto/mem.c @@ -150,12 +150,12 @@ static long (*get_debug_options_func) (void) = NULL; int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), void (*f) (void *)) { - /* Dummy call just to ensure OPENSSL_init() gets linked in */ - OPENSSL_init(); if (!allow_customize) return 0; if ((m == 0) || (r == 0) || (f == 0)) return 0; + /* Dummy call just to ensure OPENSSL_init() gets linked in */ + OPENSSL_init(); malloc_func = m; malloc_ex_func = default_malloc_ex; realloc_func = r;