BUF_MEM_NEW(3)
π BUF_MEM_NEW(3) π
okay so welcome to the BUF_MEM_NEW(3) page from the Library Functions Manual β yes, the manual name is folded right in here, bestie, because we are not doing boring header-line energy today. This is the buffer-memory page: simple character arrays, but make it libcrypto. β¨
πΈ NAME πΈ
BUF_MEM_new, BUF_MEM_free, BUF_MEM_grow, BUF_MEM_grow_clean β simple character arrays structure, and honestly that's the whole vibe.
β¨ SYNOPSIS β¨
library βlibcryptoβ #include <openssl/buffer.h>
BUF_MEM *
BUF_MEM_new(void);
void
BUF_MEM_free(BUF_MEM *a);
int
BUF_MEM_grow(BUF_MEM *str, size_t len);
int
BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
π DESCRIPTION π
The buffer library handles simple character arrays. Buffers are used for various purposes in the library, most notably memory BIOs. iykyk β memory BIOs are lowkey the main character here.
The library uses the BUF_MEM structure defined in buffer.h:
typedef struct buf_mem_st {
size_t length; /* current number of bytes */
char *data;
size_t max; /* size of buffer */
} BUF_MEM;
length is the current size of the buffer in bytes; max is the amount of memory allocated to the buffer. There are three functions which handle these and one miscellaneous function β that's the official count, periodt.
BUF_MEM_new()β allocates a new buffer of zero size. Main character move: it arrives empty and ready to grow.BUF_MEM_free()β frees up an already existing buffer. The data is zeroed before freeing up in case the buffer contains sensitive data. Ifais aNULLpointer, no action occurs. Security queen behavior, fr fr.BUF_MEM_grow()β changes the size of an already existing buffer tolen. Any data already in the buffer is preserved if it increases in size.BUF_MEM_grow_clean()β is similar toBUF_MEM_grow(), but it sets any freed or additionally allocated memory to zero.
π«Ά RETURN VALUES π«Ά
BUF_MEM_new()β returns the buffer orNULLon error.BUF_MEM_grow()andBUF_MEM_grow_clean()β return zero on error or the new size (i.e.len).
π₯ SEE ALSO π₯
Go read these too, bestie β they're giving related lore. π
π¦ HISTORY π¦
BUF_MEM_new(),BUF_MEM_free(), andBUF_MEM_grow()first appeared in SSLeay 0.6.0. All these functions have been available since OpenBSD 2.4.BUF_MEM_grow_clean()first appeared in OpenSSL 0.9.7 and has been available since OpenBSD 3.2.
xoxo, your Debian bestie π β this page is dated June 8, 2025, and it's the BUF_MEM_NEW(3) page. Slay. β¨ππ¦
π¦ where this page comes from
- alpine 3.24: libressl-doc 4.3.1-r0 Β· custom
- arch rolling: libressl 4.4.0-1 Β· ISC AND custom:OpenSSL
- Copyright (c) 1999, 2000, 2016 The OpenSSL Project. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms