CRYPTO_SET_MEM_FUNCTIONS(3) | Library Functions Manual | CRYPTO_SET_MEM_FUNCTIONS(3)

# NAME

`CRYPTO_set_mem_functions`, `CRYPTO_mem_ctrl`, `CRYPTO_mem_leaks`, `CRYPTO_mem_leaks_fp`, `CRYPTO_mem_leaks_cb` — legacy OpenSSL memory allocation control

# SYNOPSIS

library “libcrypto”
`#include <openssl/crypto.h>`

int
`CRYPTO_set_mem_functions`(void *(*m)(size_t, const char *, int), void *(*r)(void *, size_t, const char *, int), void (*f)(void *, const char *, int));

int
`CRYPTO_mem_ctrl`(int mode);

int
`CRYPTO_mem_leaks`(BIO *b);

int
`CRYPTO_mem_leaks_fp`(FILE *fp);

typedef int *
`CRYPTO_MEM_LEAK_CB`(unsigned long, const char *, int, int, void *);

int
`CRYPTO_mem_leaks_cb`(CRYPTO_MEM_LEAK_CB *cb);

# DESCRIPTION

Do not use any of the interfaces documented here. They are provided purely for compatibility with legacy application code.

`CRYPTO_set_mem_functions`(), `CRYPTO_mem_ctrl`(), `CRYPTO_mem_leaks`(), `CRYPTO_mem_leaks_fp`(), and `CRYPTO_mem_leaks_cb`() have no effect.

# RETURN VALUES

`CRYPTO_set_mem_functions`() always returns 0.

`CRYPTO_mem_ctrl`() always returns `CRYPTO_MEM_CHECK_OFF`.

`CRYPTO_mem_leaks`(), `CRYPTO_mem_leaks_fp`(), and `CRYPTO_mem_leaks_cb`() always return -1.

# SEE ALSO

crypto(3)

# HISTORY

`CRYPTO_mem_ctrl`(), `CRYPTO_mem_leaks`(), and `CRYPTO_mem_leaks_fp`() first appeared in SSLeay 0.6.4. `CRYPTO_set_mem_functions`() first appeared in SSLeay 0.6.5. `CRYPTO_mem_leaks_cb`() first appeared in SSLeay 0.6.6. All these functions have all been available since OpenBSD 2.4.

June 8, 2025 | Debian