From: Rich Salz Date: Wed, 26 Aug 2015 04:25:11 +0000 (-0400) Subject: Remove _locked memory functions. X-Git-Tag: OpenSSL_1_1_0-pre1~780 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4c42ebd;p=oweals%2Fopenssl.git Remove _locked memory functions. Undocumented, unused, unnecessary (replaced by secure arena). Reviewed-by: Richard Levitte --- diff --git a/crypto/mem.c b/crypto/mem.c index 56c3585865..8b9c8c3805 100644 --- a/crypto/mem.c +++ b/crypto/mem.c @@ -103,17 +103,6 @@ static void *(*malloc_secure_ex_func)(size_t, const char *file, int line) = default_malloc_secure_ex; static void (*free_secure_func)(void *) = free; -static void *(*malloc_locked_func) (size_t) = malloc; -static void *default_malloc_locked_ex(size_t num, const char *file, int line) -{ - return malloc_locked_func(num); -} - -static void *(*malloc_locked_ex_func) (size_t, const char *file, int line) - = default_malloc_locked_ex; - -static void (*free_locked_func) (void *) = free; - /* may be changed as long as 'allow_customize_debug' is set */ /* XXX use correct function pointer types */ #ifdef CRYPTO_MDEBUG @@ -159,9 +148,6 @@ int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), malloc_secure_func = m; malloc_secure_ex_func = default_malloc_secure_ex; free_secure_func = f; - malloc_locked_func = m; - malloc_locked_ex_func = default_malloc_locked_ex; - free_locked_func = f; return 1; } @@ -181,9 +167,6 @@ int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), malloc_secure_func = 0; malloc_secure_ex_func = m; free_secure_func = f; - malloc_locked_func = 0; - malloc_locked_ex_func = m; - free_locked_func = f; return 1; } @@ -198,11 +181,6 @@ int CRYPTO_set_secure_mem_functions(void *(*m)(size_t), void (*f)(void *)) malloc_secure_func = m; malloc_secure_ex_func = default_malloc_secure_ex; free_secure_func = f; - /* If user wants to intercept the locked functions, do it after - * the secure functions. */ - malloc_locked_func = m; - malloc_locked_ex_func = default_malloc_secure_ex; - free_locked_func = f; return 1; } @@ -216,34 +194,6 @@ int CRYPTO_set_secure_mem_ex_functions(void *(*m)(size_t, const char *, int), malloc_secure_func = 0; malloc_secure_ex_func = m; free_secure_func = f; - malloc_locked_func = 0; - malloc_locked_ex_func = m; - free_locked_func = f; - return 1; -} - -int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), void (*f) (void *)) -{ - if (!allow_customize) - return 0; - if ((m == NULL) || (f == NULL)) - return 0; - malloc_locked_func = m; - malloc_locked_ex_func = default_malloc_locked_ex; - free_locked_func = f; - return 1; -} - -int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), - void (*f) (void *)) -{ - if (!allow_customize) - return 0; - if ((m == NULL) || (f == NULL)) - return 0; - malloc_locked_func = 0; - malloc_locked_ex_func = m; - free_locked_func = f; return 1; } @@ -307,27 +257,6 @@ void CRYPTO_get_secure_mem_ex_functions(void *(**m)(size_t,const char *,int), *f=free_secure_func; } -void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), - void (**f) (void *)) -{ - if (m != NULL) - *m = (malloc_locked_ex_func == default_malloc_locked_ex) ? - malloc_locked_func : 0; - if (f != NULL) - *f = free_locked_func; -} - -void CRYPTO_get_locked_mem_ex_functions(void - *(**m) (size_t, const char *, int), - void (**f) (void *)) -{ - if (m != NULL) - *m = (malloc_locked_ex_func != default_malloc_locked_ex) ? - malloc_locked_ex_func : 0; - if (f != NULL) - *f = free_locked_func; -} - void CRYPTO_get_mem_debug_functions(void (**m) (void *, int, const char *, int, int), void (**r) (void *, void *, int, @@ -347,54 +276,6 @@ void CRYPTO_get_mem_debug_functions(void (**m) *go = get_debug_options_func; } -void *CRYPTO_malloc_locked(int num, const char *file, int line) -{ - void *ret = NULL; - - if (num <= 0) - return NULL; - - if (allow_customize) - allow_customize = 0; - if (malloc_debug_func != NULL) { - if (allow_customize_debug) - allow_customize_debug = 0; - malloc_debug_func(NULL, num, file, line, 0); - } - ret = malloc_locked_ex_func(num, file, line); -#ifdef LEVITTE_DEBUG_MEM - fprintf(stderr, "LEVITTE_DEBUG_MEM: > 0x%p (%d)\n", ret, num); -#endif - if (malloc_debug_func != NULL) - malloc_debug_func(ret, num, file, line, 1); - -#ifndef OPENSSL_CPUID_OBJ - /* - * Create a dependency on the value of 'cleanse_ctr' so our memory - * sanitisation function can't be optimised out. NB: We only do this for - * >2Kb so the overhead doesn't bother us. - */ - if (ret && (num > 2048)) { - extern unsigned char cleanse_ctr; - ((unsigned char *)ret)[0] = cleanse_ctr; - } -#endif - - return ret; -} - -void CRYPTO_free_locked(void *str) -{ - if (free_debug_func != NULL) - free_debug_func(str, 0); -#ifdef LEVITTE_DEBUG_MEM - fprintf(stderr, "LEVITTE_DEBUG_MEM: < 0x%p\n", str); -#endif - free_locked_func(str); - if (free_debug_func != NULL) - free_debug_func(NULL, 1); -} - void *CRYPTO_malloc(int num, const char *file, int line) { void *ret = NULL; diff --git a/crypto/rsa/rsa_lib.c b/crypto/rsa/rsa_lib.c index 76c9796bf0..b28021ba88 100644 --- a/crypto/rsa/rsa_lib.c +++ b/crypto/rsa/rsa_lib.c @@ -231,7 +231,7 @@ void RSA_free(RSA *r) BN_clear_free(r->iqmp); BN_BLINDING_free(r->blinding); BN_BLINDING_free(r->mt_blinding); - OPENSSL_free_locked(r->bignum_data); + OPENSSL_free(r->bignum_data); OPENSSL_free(r); } @@ -287,7 +287,7 @@ int RSA_memory_lock(RSA *r) j = 1; for (i = 0; i < 6; i++) j += bn_get_top(*t[i]); - if ((p = OPENSSL_malloc_locked((off + j) * sizeof(BN_ULONG))) == NULL) { + if ((p = OPENSSL_malloc((off + j) * sizeof(BN_ULONG))) == NULL) { RSAerr(RSA_F_RSA_MEMORY_LOCK, ERR_R_MALLOC_FAILURE); return (0); } diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h index faaf1d5109..1d1c2b3467 100644 --- a/include/openssl/crypto.h +++ b/include/openssl/crypto.h @@ -356,9 +356,6 @@ int CRYPTO_is_mem_check_on(void); # define OPENSSL_clear_free(addr, num) CRYPTO_clear_free(addr, num) # define OPENSSL_free(addr) CRYPTO_free(addr) -# define OPENSSL_malloc_locked(num) \ - CRYPTO_malloc_locked((int)num,__FILE__,__LINE__) -# define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr) # define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) const char *SSLeay_version(int type); @@ -456,19 +453,11 @@ void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value *l, const char *file, int line); -/* - * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call - * the latter last if you need different functions - */ int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), void (*f) (void *)); -int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), - void (*f) (void *)); int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), void *(*r) (void *, size_t, const char *, int), void (*f) (void *)); -int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), - void (*f) (void *)); int CRYPTO_set_mem_debug_functions(void (*m) (void *, int, const char *, int, int), void (*r) (void *, void *, int, @@ -478,14 +467,9 @@ int CRYPTO_set_mem_debug_functions(void (*m) void CRYPTO_get_mem_functions(void *(**m) (size_t), void *(**r) (void *, size_t), void (**f) (void *)); -void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), - void (**f) (void *)); void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), void *(**r) (void *, size_t, const char *, int), void (**f) (void *)); -void CRYPTO_get_locked_mem_ex_functions(void - *(**m) (size_t, const char *, int), - void (**f) (void *)); void CRYPTO_get_mem_debug_functions(void (**m) (void *, int, const char *, int, int), void (**r) (void *, void *, int, @@ -493,8 +477,6 @@ void CRYPTO_get_mem_debug_functions(void (**m) void (**f) (void *, int), void (**so) (long), long (**go) (void)); -void *CRYPTO_malloc_locked(int num, const char *file, int line); -void CRYPTO_free_locked(void *ptr); void *CRYPTO_malloc(int num, const char *file, int line); char *CRYPTO_strdup(const char *str, const char *file, int line); void CRYPTO_free(void *ptr); diff --git a/include/openssl/symhacks.h b/include/openssl/symhacks.h index 3253df8c01..8e0edfc013 100644 --- a/include/openssl/symhacks.h +++ b/include/openssl/symhacks.h @@ -128,10 +128,6 @@ # define CRYPTO_get_dynlock_destroy_callback CRYPTO_get_dynlock_destroy_cb # undef CRYPTO_get_dynlock_create_callback # define CRYPTO_get_dynlock_create_callback CRYPTO_get_dynlock_create_cb -# undef CRYPTO_set_locked_mem_ex_functions -# define CRYPTO_set_locked_mem_ex_functions CRYPTO_set_locked_mem_ex_funcs -# undef CRYPTO_get_locked_mem_ex_functions -# define CRYPTO_get_locked_mem_ex_functions CRYPTO_get_locked_mem_ex_funcs /* Hack some long SSL/TLS names */ # undef SSL_CTX_set_default_verify_paths diff --git a/util/libeay.num b/util/libeay.num index a82db68e00..fa6d9c2ba0 100755 --- a/util/libeay.num +++ b/util/libeay.num @@ -1371,8 +1371,8 @@ X509V3_string_free 1506 EXIST::FUNCTION: X509V3_section_free 1507 EXIST::FUNCTION: X509V3_set_ctx 1508 EXIST::FUNCTION: s2i_ASN1_INTEGER 1509 EXIST::FUNCTION: -CRYPTO_set_locked_mem_functions 1510 EXIST::FUNCTION: -CRYPTO_get_locked_mem_functions 1511 EXIST::FUNCTION: +CRYPTO_set_locked_mem_functions 1510 NOEXIST::FUNCTION: +CRYPTO_get_locked_mem_functions 1511 NOEXIST::FUNCTION: CRYPTO_malloc_locked 1512 EXIST::FUNCTION: CRYPTO_free_locked 1513 EXIST::FUNCTION: BN_mod_exp2_mont 1514 EXIST::FUNCTION: @@ -2237,8 +2237,8 @@ DIRECTORYSTRING_it 2767 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIA DIRECTORYSTRING_it 2767 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: d2i_OCSP_CRLID 2768 EXIST::FUNCTION: EC_POINT_is_on_curve 2769 EXIST::FUNCTION:EC -CRYPTO_set_locked_mem_ex_functions 2770 EXIST:!VMS:FUNCTION: -CRYPTO_set_locked_mem_ex_funcs 2770 EXIST:VMS:FUNCTION: +CRYPTO_set_locked_mem_ex_funcs 2770 NOEXIST::FUNCTION: +CRYPTO_set_locked_mem_ex_functions 2770 NOEXIST::FUNCTION: d2i_KRB5_CHECKSUM 2771 NOEXIST::FUNCTION: ASN1_item_dup 2772 EXIST::FUNCTION: X509_it 2773 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: @@ -2252,8 +2252,8 @@ EC_POINT_get_Jprojective_coordinates_GFp 2779 EXIST:!VMS:FUNCTION:EC EC_POINT_get_Jproj_coords_GFp 2779 EXIST:VMS:FUNCTION:EC ZLONG_it 2780 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: ZLONG_it 2780 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: -CRYPTO_get_locked_mem_ex_functions 2781 EXIST:!VMS:FUNCTION: -CRYPTO_get_locked_mem_ex_funcs 2781 EXIST:VMS:FUNCTION: +CRYPTO_get_locked_mem_ex_funcs 2781 NOEXIST::FUNCTION: +CRYPTO_get_locked_mem_ex_functions 2781 NOEXIST::FUNCTION: ASN1_TIME_check 2782 EXIST::FUNCTION: UI_get0_user_data 2783 EXIST::FUNCTION: HMAC_CTX_cleanup 2784 EXIST::FUNCTION: