Sortix nightly manual
This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.
BUF_MEM_NEW(3) | Library Functions Manual | BUF_MEM_NEW(3) |
NAME
BUF_MEM_new
,
BUF_MEM_free
,
BUF_MEM_grow
,
BUF_MEM_grow_clean
,
BUF_reverse
,
BUF_strdup
—
simple character arrays structure
SYNOPSIS
#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);
void
BUF_reverse
(unsigned
char *out, const unsigned char *in,
size_t len);
char *
BUF_strdup
(const
char *str);
DESCRIPTION
The buffer library handles simple character arrays. Buffers are used for various purposes in the library, most notably memory BIOs. 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;
BUF_MEM_new
() allocates a new buffer of zero
size.
BUF_MEM_free
() frees up an already existing
buffer. The data is zeroed before freeing up in case the buffer contains
sensitive data. If a is a
NULL
pointer, no action occurs.
BUF_MEM_grow
() changes the size of an already
existing buffer to len. Any data already in
the buffer is preserved if it increases in size.
BUF_MEM_grow_clean
() is similar to
BUF_MEM_grow
(), but it sets any freed or
additionally allocated memory to zero.
BUF_reverse
() reverses
len bytes at
in into out.
If in is
NULL
, out
is reversed in place.
BUF_strdup
() copies a NUL terminated string
into a block of allocated memory and returns a pointer to the allocated block.
Unlike the system
strdup(3) function,
BUF_strdup
() will accept a
NULL
argument and will return
NULL
in that case. Its use in new programs
is discouraged.
The memory allocated from BUF_strdup
() should
be freed up using the
free(3) function.
RETURN VALUES
BUF_MEM_new
() returns the buffer or
NULL
on error.
BUF_MEM_grow
() and
BUF_MEM_grow_clean
() return zero on error
or the new size (i.e. len).
SEE ALSO
BIO_new(3), BIO_s_mem(3)HISTORY
BUF_MEM_new
(),
BUF_MEM_free
(), and
BUF_MEM_grow
() first appeared in SSLeay
0.6.0. BUF_strdup
() first appeared in
SSLeay 0.8.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.
BUF_reverse
() first appeared in OpenSSL 1.0.0
and has been available since OpenBSD 4.9.June 6, 2019 | Debian |