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; |
- } |