summaryrefslogtreecommitdiffstats
path: root/crypto/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/mem.c')
-rw-r--r--crypto/mem.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/crypto/mem.c b/crypto/mem.c
index afdce778dc..6176b38d75 100644
--- a/crypto/mem.c
+++ b/crypto/mem.c
@@ -417,8 +417,7 @@ void *CRYPTO_realloc_clean(void *str, int old_len, int num, const char *file,
ret = malloc_ex_func(num, file, line);
if (ret) {
memcpy(ret, str, old_len);
- OPENSSL_cleanse(str, old_len);
- free_func(str);
+ OPENSSL_clear_free(str, old_len);
}
#ifdef LEVITTE_DEBUG_MEM
fprintf(stderr,
@@ -443,6 +442,15 @@ void CRYPTO_free(void *str)
free_debug_func(NULL, 1);
}
+void CRYPTO_clear_free(void *str, size_t num)
+{
+ if (!str)
+ return;
+ if (num)
+ OPENSSL_cleanse(str, num);
+ CRYPTO_free(str);
+}
+
void *CRYPTO_remalloc(void *a, int num, const char *file, int line)
{
if (a != NULL)