From ef45aa14c5af024fcb8bef1c9007f3d1c115bd85 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Tue, 5 Feb 2019 14:25:18 +0000 Subject: [PATCH] Make OPENSSL_malloc_init() a no-op Making this a no-op removes a potential infinite loop than can occur in some situations. Fixes #2865 Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/8167) --- doc/man3/OPENSSL_malloc.pod | 6 ++---- include/openssl/crypto.h | 9 ++------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/doc/man3/OPENSSL_malloc.pod b/doc/man3/OPENSSL_malloc.pod index e17ff633b5..f1de27a19c 100644 --- a/doc/man3/OPENSSL_malloc.pod +++ b/doc/man3/OPENSSL_malloc.pod @@ -90,10 +90,8 @@ generally macro's that add the standard C B<__FILE__> and B<__LINE__> parameters and call a lower-level B API. Some functions do not add those parameters, but exist for consistency. -OPENSSL_malloc_init() sets the lower-level memory allocation functions -to their default implementation. -It is generally not necessary to call this, except perhaps in certain -shared-library situations. +OPENSSL_malloc_init() does nothing and does not need to be called. It is +included for compatibility with older versions of OpenSSL. OPENSSL_malloc(), OPENSSL_realloc(), and OPENSSL_free() are like the C malloc(), realloc(), and free() functions. diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h index f912302117..cbde3d5ef1 100644 --- a/include/openssl/crypto.h +++ b/include/openssl/crypto.h @@ -109,13 +109,8 @@ DEFINE_STACK_OF(void) # define CRYPTO_EX_INDEX_DRBG 15 # define CRYPTO_EX_INDEX__COUNT 16 -/* - * This is the default callbacks, but we can have others as well: this is - * needed in Win32 where the application malloc and the library malloc may - * not be the same. - */ -#define OPENSSL_malloc_init() \ - CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free) +/* No longer needed, so this is a no-op */ +#define OPENSSL_malloc_init() while(0) continue int CRYPTO_mem_ctrl(int mode);