NAME
openpam_straddch
—
add a character to a string, expanding
the buffer if needed
SYNOPSIS
#include
<sys/types.h>
#include <security/pam_appl.h>
#include
<security/openpam.h>
int
openpam_straddch
(char
**str, size_t
*size, size_t *len,
int ch);
DESCRIPTION
Theopenpam_straddch
()
function appends a character to a dynamically allocated NUL-terminated buffer,
reallocating the buffer as needed.
The str argument points to a variable
containing either a pointer to an existing buffer or
NULL
. If the value of the variable pointed to by
str is NULL
, a new buffer is
allocated.
The size and len argument point to variables used to hold the size of the buffer and the length of the string it contains, respectively.
The final argument, ch, is the character that should be appended to the string. If ch is 0, nothing is appended, but a new buffer is still allocated if str is NULL. This can be used to “bootstrap” the string.
If a new buffer is allocated or an existing buffer is reallocated to make room for the additional character, str and size are updated accordingly.
The
openpam_straddch
()
function ensures that the buffer is always NUL-terminated.
If the
openpam_straddch
()
function is successful, it increments the integer variable pointed to by
len (unless ch was 0) and
returns 0. Otherwise, it leaves the variables pointed to by
str, size and
len unmodified, sets errno to
ENOMEM
and returns -1.
RETURN VALUES
The openpam_straddch
() function returns 0
on success and -1 on failure.
SEE ALSO
STANDARDS
The openpam_straddch
() function is an
OpenPAM extension.
AUTHORS
The openpam_straddch
() function and this
manual page were developed by Dag-Erling
Smørgrav
<des@des.no>.