-int CRYPTO_is_mem_check_on(void);
-
-/* for applications */
-# define MemCheck_start() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON)
-# define MemCheck_stop() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF)
-
-/* for library-internal use */
-# define MemCheck_on() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ENABLE)
-# define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE)
-# define is_MemCheck_on() CRYPTO_is_mem_check_on()
-
-# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__)
-# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__)
-# define OPENSSL_realloc(addr,num) \
- CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__)
-# define OPENSSL_realloc_clean(addr,old_num,num) \
- CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__)
-# define OPENSSL_remalloc(addr,num) \
- CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__)
-# define OPENSSL_clear_free(addr, num) CRYPTO_clear_free(addr, num)
-# define OPENSSL_free(addr) CRYPTO_free(addr)
+
+# ifdef CRYPTO_MDEBUG
+# define OPENSSL_malloc(num) \
+ CRYPTO_malloc(num, __FILE__, __LINE__)
+# define OPENSSL_zalloc(num) \
+ CRYPTO_zalloc(num, __FILE__, __LINE__)
+# define OPENSSL_realloc(addr, num) \
+ CRYPTO_realloc(addr, num, __FILE__, __LINE__)
+# define OPENSSL_clear_realloc(addr, old_num, num) \
+ CRYPTO_clear_realloc(addr, old_num, num, __FILE__, __LINE__)
+# define OPENSSL_clear_free(addr, num) \
+ CRYPTO_clear_free(addr, num)
+# define OPENSSL_free(addr) \
+ CRYPTO_free(addr)
+# define OPENSSL_memdup(str, s) \
+ CRYPTO_memdup((str), s, __FILE__, __LINE__)
+# define OPENSSL_strdup(str) \
+ CRYPTO_strdup(str, __FILE__, __LINE__)
+# define OPENSSL_strndup(str, n) \
+ CRYPTO_strndup(str, n, __FILE__, __LINE__)
+# define OPENSSL_secure_malloc(num) \
+ CRYPTO_secure_malloc(num, __FILE__, __LINE__)
+# define OPENSSL_secure_free(addr) \
+ CRYPTO_secure_free(addr)
+# define OPENSSL_secure_actual_size(ptr) \
+ CRYPTO_secure_actual_size(ptr)
+# else
+# define OPENSSL_malloc(num) \
+ CRYPTO_malloc(num, NULL, 0)
+# define OPENSSL_zalloc(num) \
+ CRYPTO_zalloc(num, NULL, 0)
+# define OPENSSL_realloc(addr, num) \
+ CRYPTO_realloc(addr, num, NULL, 0)
+# define OPENSSL_clear_realloc(addr, old_num, num) \
+ CRYPTO_clear_realloc(addr, old_num, num, NULL, 0)
+# define OPENSSL_clear_free(addr, num) \
+ CRYPTO_clear_free(addr, num)
+# define OPENSSL_free(addr) \
+ CRYPTO_free(addr)
+# define OPENSSL_memdup(str, s) \
+ CRYPTO_memdup(str, s, NULL, 0)
+# define OPENSSL_strdup(str) \
+ CRYPTO_strdup(str, NULL, 0)
+# define OPENSSL_strndup(str, s) \
+ CRYPTO_strndup(str, s, NULL, 0)
+# define OPENSSL_secure_malloc(num) \
+ CRYPTO_secure_malloc(num, NULL, 0)
+# define OPENSSL_secure_free(addr) \
+ CRYPTO_secure_free(addr)
+# define OPENSSL_secure_actual_size(ptr) \
+ CRYPTO_secure_actual_size(ptr)
+
+# endif
+
+size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz);
+size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz);
+size_t OPENSSL_strnlen(const char *str, size_t maxlen);