PAM_SET_DATA(3PAM) PAM Library Functions PAM_SET_DATA(3PAM)
NAME
pam_set_data, pam_get_data - PAM routines to maintain module specific
state
SYNOPSIS
cc [
flag ... ]
file ...
-lpam [
library ... ]
#include <security/pam_appl.h>
int pam_set_data(
pam_handle_t *pamh,
const char *module_data_name,
void *data,
void (*cleanup) (pam_handle_t *
pamh,
void *data,
int pam_end_status));
int pam_get_data(
const pam_handle_t *pamh,
const char *module_data_name,
const void **data);
DESCRIPTION
The
pam_set_data() and
pam_get_data() functions allow
PAM service modules
to access and update module specific information as needed. These
functions should not be used by applications.
The
pam_set_data() function stores module specific data within the
PAM handle
pamh. The
module_data_name argument uniquely identifies the data,
and the
data argument represents the actual data. The
module_data_name argument should be unique across all services.
The
cleanup function frees up any memory used by the
data after it is no
longer needed, and is invoked by
pam_end(). The
cleanup function takes as
its arguments a pointer to the
PAM handle,
pamh, a pointer to the actual
data,
data, and a status code,
pam_end_status. The status code determines
exactly what state information needs to be purged.
If
pam_set_data() is called and module data already exists from a prior
call to
pam_set_data() under the same
module_data_name, then the
existing
data is replaced by the new
data, and the existing
cleanup function is replaced by the new
cleanup function.
The
pam_get_data() function retrieves module-specific data stored in the
PAM handle,
pamh, identified by the unique name,
module_data_name. The
data argument is assigned the address of the requested data. The
data retrieved by
pam_get_data() should not be modified or freed. The
data will be released by
pam_end().
RETURN VALUES
In addition to the return values listed in
pam(3PAM), the following value
may also be returned:
PAM_NO_MODULE_DATA No module specific data is present.
ATTRIBUTES
See
attributes(7) for description of the following attributes:
+--------------------+-------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------------+
|Interface Stability | Stable |
+--------------------+-------------------------+
|MT-Level | MT-Safe with exceptions |
+--------------------+-------------------------+
SEE ALSO
libpam(3LIB),
pam(3PAM),
pam_end(3PAM),
attributes(7)NOTES
The interfaces in
libpam are MT-Safe only if each thread within the
multithreaded application uses its own
PAM handle.
October 13, 1998
PAM_SET_DATA(3PAM)