In realloc, don't destroy the old memory area if a new one couldn't be
allocated.
Notified by Daniel Lucq <daniel@lucq.org>
diff --git a/crypto/mem.c b/crypto/mem.c
index 57f2958..d01924c 100644
--- a/crypto/mem.c
+++ b/crypto/mem.c
@@ -352,11 +352,15 @@
 		realloc_debug_func(str, NULL, num, file, line, 0);
 	ret=malloc_ex_func(num,file,line);
 	if(ret)
+		{
 		memcpy(ret,str,old_len);
-	OPENSSL_cleanse(str,old_len);
-	free_func(str);
+		OPENSSL_cleanse(str,old_len);
+		free_func(str);
+		}
 #ifdef LEVITTE_DEBUG_MEM
-	fprintf(stderr, "LEVITTE_DEBUG_MEM:         | 0x%p -> 0x%p (%d)\n", str, ret, num);
+	fprintf(stderr,
+		"LEVITTE_DEBUG_MEM:         | 0x%p -> 0x%p (%d)\n",
+		str, ret, num);
 #endif
 	if (realloc_debug_func != NULL)
 		realloc_debug_func(str, ret, num, file, line, 1);