LIBRESSL-CRYPTO_SET_MEM_FUNCTIONS(3)

πŸ“¦ version 4.4.0, in alpine 3.24, arch rolling

πŸ’– CRYPTO_SET_MEM_FUNCTIONS(3) πŸ’–

okay so bestie, this page is from the Library Functions Manual. It's giving legacy compatibility energy, iykyk. 🫢

🌸 NAME 🌸

  • CRYPTO_set_mem_functions
  • CRYPTO_mem_ctrl
  • CRYPTO_mem_leaks
  • CRYPTO_mem_leaks_fp
  • CRYPTO_mem_leaks_cb

all of these are 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 πŸ¦‹

bestie, do not use any of the interfaces documented here. They are provided purely for compatibility with legacy application code. That's the whole assignment. 😭

The way that CRYPTO_set_mem_functions(), CRYPTO_mem_ctrl(), CRYPTO_mem_leaks(), CRYPTO_mem_leaks_fp(), and CRYPTO_mem_leaks_cb() all have no effect? Not me expecting them to do something. πŸ’€

πŸ’… RETURN VALUES πŸ’…

  • CRYPTO_set_mem_functions() β€” always returns 0. slay, I guess.
  • CRYPTO_mem_ctrl() β€” always returns CRYPTO_MEM_CHECK_OFF.
  • CRYPTO_mem_leaks(), CRYPTO_mem_leaks_fp(), and CRYPTO_mem_leaks_cb() β€” always return -1. fr fr.

πŸŽ€ SEE ALSO πŸŽ€

πŸ‘‘ 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.

okay that's the whole page, bestie 🫢 this one is from Debian, dated June 8, 2025, and it's the CRYPTO_SET_MEM_FUNCTIONS(3) page. periodt. πŸ’–

πŸ“¦ where this page comes from