Commit 4c42ebd2 authored by Rich Salz's avatar Rich Salz Committed by Rich Salz
Browse files

Remove _locked memory functions.



Undocumented, unused, unnecessary (replaced by secure arena).

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent 22dc08d0
Loading
Loading
Loading
Loading
+0 −119
Original line number Diff line number Diff line
@@ -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;
+2 −2
Original line number Diff line number Diff line
@@ -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);
    }
+0 −18
Original line number Diff line number Diff line
@@ -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);
+0 −4
Original line number Diff line number Diff line
@@ -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
+6 −6
Original line number Diff line number Diff line
@@ -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: