pam_set_data(3)pam_set_data(3)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,
const 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 *mod‐
ule_data_name, void **data);
DESCRIPTIONpam_set_data() and pam_set_data() allow PAM service modules to access
and update module specific information as needed. These functions
should not be used by applications.
pam_set_data() 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. module_data_name should be
unique across all services (UNIX, DCE, etc).
The cleanup function is used to free any memory used by the data after
it is no longer needed, and is invoked by pam_end(). The cleanup func‐
tion 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, and is therefore specific to each module.
If pam_set_data() is called and module data already exists under the
same module_data_name (from a prior call to pam_set_data()), then the
existing data is replaced by the new data, and the existing cleanup
function is replaced by the new cleanup function.
pam_get_data() retrieves module specific data stored in the PAM handle,
pamh, identified by the unique name, module_data_name. The data argu‐
ment is assigned the address of the requested data.
RETURN VALUES
In addition to the return values listed in pam(3), the following value
may also be returned:
PAM_NO_MODULE_DATA No module specific data is present
SEE ALSOpam(3), pam_end(3)
12 September 1995 pam_set_data(3)