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 <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8167)
This commit is contained in:
Matt Caswell 2019-02-05 14:25:18 +00:00
parent f2ed96dac0
commit ef45aa14c5
2 changed files with 4 additions and 11 deletions

View File

@ -90,10 +90,8 @@ generally macro's that add the standard C B<__FILE__> and B<__LINE__>
parameters and call a lower-level B<CRYPTO_xxx> API. parameters and call a lower-level B<CRYPTO_xxx> API.
Some functions do not add those parameters, but exist for consistency. Some functions do not add those parameters, but exist for consistency.
OPENSSL_malloc_init() sets the lower-level memory allocation functions OPENSSL_malloc_init() does nothing and does not need to be called. It is
to their default implementation. included for compatibility with older versions of OpenSSL.
It is generally not necessary to call this, except perhaps in certain
shared-library situations.
OPENSSL_malloc(), OPENSSL_realloc(), and OPENSSL_free() are like the OPENSSL_malloc(), OPENSSL_realloc(), and OPENSSL_free() are like the
C malloc(), realloc(), and free() functions. C malloc(), realloc(), and free() functions.

View File

@ -109,13 +109,8 @@ DEFINE_STACK_OF(void)
# define CRYPTO_EX_INDEX_DRBG 15 # define CRYPTO_EX_INDEX_DRBG 15
# define CRYPTO_EX_INDEX__COUNT 16 # define CRYPTO_EX_INDEX__COUNT 16
/* /* No longer needed, so this is a no-op */
* This is the default callbacks, but we can have others as well: this is #define OPENSSL_malloc_init() while(0) continue
* 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)
int CRYPTO_mem_ctrl(int mode); int CRYPTO_mem_ctrl(int mode);