| Index: openssl/crypto/mem.c
|
| ===================================================================
|
| --- openssl/crypto/mem.c (revision 105093)
|
| +++ openssl/crypto/mem.c (working copy)
|
| @@ -101,7 +101,7 @@
|
|
|
| /* may be changed as long as 'allow_customize_debug' is set */
|
| /* XXX use correct function pointer types */
|
| -#if defined(CRYPTO_MDEBUG) && !defined(OPENSSL_FIPS)
|
| +#ifdef CRYPTO_MDEBUG
|
| /* use default functions from mem_dbg.c */
|
| static void (*malloc_debug_func)(void *,int,const char *,int,int)
|
| = CRYPTO_dbg_malloc;
|
| @@ -110,14 +110,6 @@
|
| static void (*free_debug_func)(void *,int) = CRYPTO_dbg_free;
|
| static void (*set_debug_options_func)(long) = CRYPTO_dbg_set_options;
|
| static long (*get_debug_options_func)(void) = CRYPTO_dbg_get_options;
|
| -
|
| -static int (*push_info_func)(const char *info, const char *file, int line)
|
| - = CRYPTO_dbg_push_info;
|
| -static int (*pop_info_func)(void)
|
| - = CRYPTO_dbg_pop_info;
|
| -static int (*remove_all_info_func)(void)
|
| - = CRYPTO_dbg_remove_all_info;
|
| -
|
| #else
|
| /* applications can use CRYPTO_malloc_debug_init() to select above case
|
| * at run-time */
|
| @@ -127,13 +119,6 @@
|
| static void (*free_debug_func)(void *,int) = NULL;
|
| static void (*set_debug_options_func)(long) = NULL;
|
| static long (*get_debug_options_func)(void) = NULL;
|
| -
|
| -
|
| -static int (*push_info_func)(const char *info, const char *file, int line)
|
| - = NULL;
|
| -static int (*pop_info_func)(void) = NULL;
|
| -static int (*remove_all_info_func)(void) = NULL;
|
| -
|
| #endif
|
|
|
|
|
| @@ -209,15 +194,6 @@
|
| return 1;
|
| }
|
|
|
| -void CRYPTO_set_mem_info_functions(
|
| - int (*push_info_fn)(const char *info, const char *file, int line),
|
| - int (*pop_info_fn)(void),
|
| - int (*remove_all_info_fn)(void))
|
| - {
|
| - push_info_func = push_info_fn;
|
| - pop_info_func = pop_info_fn;
|
| - remove_all_info_func = remove_all_info_fn;
|
| - }
|
|
|
| void CRYPTO_get_mem_functions(void *(**m)(size_t), void *(**r)(void *, size_t),
|
| void (**f)(void *))
|
| @@ -274,7 +250,6 @@
|
| void *CRYPTO_malloc_locked(int num, const char *file, int line)
|
| {
|
| void *ret = NULL;
|
| - extern unsigned char cleanse_ctr;
|
|
|
| if (num <= 0) return NULL;
|
|
|
| @@ -291,11 +266,15 @@
|
| 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;
|
| }
|
| @@ -315,7 +294,6 @@
|
| void *CRYPTO_malloc(int num, const char *file, int line)
|
| {
|
| void *ret = NULL;
|
| - extern unsigned char cleanse_ctr;
|
|
|
| if (num <= 0) return NULL;
|
|
|
| @@ -332,15 +310,26 @@
|
| 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;
|
| }
|
| +char *CRYPTO_strdup(const char *str, const char *file, int line)
|
| + {
|
| + char *ret = CRYPTO_malloc(strlen(str)+1, file, line);
|
|
|
| + strcpy(ret, str);
|
| + return ret;
|
| + }
|
| +
|
| void *CRYPTO_realloc(void *str, int num, const char *file, int line)
|
| {
|
| void *ret = NULL;
|
| @@ -423,24 +412,3 @@
|
| return get_debug_options_func();
|
| return 0;
|
| }
|
| -
|
| -int CRYPTO_push_info_(const char *info, const char *file, int line)
|
| - {
|
| - if (push_info_func)
|
| - return push_info_func(info, file, line);
|
| - return 1;
|
| - }
|
| -
|
| -int CRYPTO_pop_info(void)
|
| - {
|
| - if (pop_info_func)
|
| - return pop_info_func();
|
| - return 1;
|
| - }
|
| -
|
| -int CRYPTO_remove_all_info(void)
|
| - {
|
| - if (remove_all_info_func)
|
| - return remove_all_info_func();
|
| - return 1;
|
| - }
|
|
|