| =pod |
| |
| =head1 NAME |
| |
| BUF_MEM_new, BUF_MEM_new_ex, BUF_MEM_free, BUF_MEM_grow - simple |
| character array structure |
| |
| BUF_strdup, BUF_strndup, BUF_memdup, BUF_strlcpy, BUF_strlcat - |
| standard C library equivalents |
| |
| =head1 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, int len); |
| |
| char *BUF_strdup(const char *str); |
| |
| char *BUF_strndup(const char *str, size_t siz); |
| |
| void *BUF_memdup(const void *data, size_t siz); |
| |
| size_t BUF_strlcpy(char *dst, const char *src, size_t size); |
| |
| size_t BUF_strlcat(char *dst, const char *src, size_t size); |
| |
| =head1 DESCRIPTION |
| |
| The buffer library handles simple character arrays. Buffers are used for |
| various purposes in the library, most notably memory BIOs. |
| |
| 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. |
| |
| BUF_MEM_grow() changes the size of an already existing buffer to |
| B<len>. Any data already in the buffer is preserved if it increases in |
| size. |
| |
| BUF_strdup(), BUF_strndup(), BUF_memdup(), BUF_strlcpy() and |
| BUF_strlcat() are equivalents of the standard C library functions. The |
| dup() functions use OPENSSL_malloc() underneath and so should be used |
| in preference to the standard library for memory leak checking or |
| replacing the malloc() function. |
| |
| Memory allocated from these functions should be freed up using the |
| OPENSSL_free() function. |
| |
| BUF_strndup makes the explicit guarantee that it will never read past |
| the first B<siz> bytes of B<str>. |
| |
| =head1 RETURN VALUES |
| |
| BUF_MEM_new() returns the buffer or NULL on error. |
| |
| BUF_MEM_free() has no return value. |
| |
| BUF_MEM_grow() returns zero on error or the new size (i.e. B<len>). |
| |
| =head1 SEE ALSO |
| |
| L<bio(3)|bio(3)> |
| |
| =head1 HISTORY |
| |
| BUF_MEM_new(), BUF_MEM_free() and BUF_MEM_grow() are available in all |
| versions of SSLeay and OpenSSL. BUF_strdup() was added in SSLeay 0.8. |
| |
| =cut |