Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pam_set_data(3pam) [sunos man page]

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 sta- tus 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, mod- ule_data_name. The data argument is assigned the address of the requested data. The data retrieved by pam_get_data() should not be modi- fied 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(5) for description of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability | Stable | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe with exceptions | +-----------------------------+-----------------------------+ SEE ALSO
pam(3PAM), pam_end(3PAM), libpam(3LIB), attributes(5) NOTES
The interfaces in libpam are MT-Safe only if each thread within the multithreaded application uses its own PAM handle. SunOS 5.10 13 Oct 1998 pam_set_data(3PAM)

Check Out this Related Man Page

PAM_SET_DATA(3) 						 Linux-PAM Manual						   PAM_SET_DATA(3)

NAME
pam_set_data - set module internal data SYNOPSIS
#include <security/pam_modules.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 error_status)); DESCRIPTION
The pam_set_data function associates a pointer to an object with the (hopefully) unique string module_data_name in the PAM context specified by the pamh argument. PAM modules may be dynamically loadable objects. In general such files should not contain static variables. This function and its counterpart pam_get_data(3), provide a mechanism for a module to associate some data with the handle pamh. Typically a module will call the pam_set_data function to register some data under a (hopefully) unique module_data_name. The data is available for use by other modules too but not by an application. Since this functions stores only a pointer to the data, the module should not modify or free the content of it. The function cleanup() is associated with the data and, if non-NULL, it is called when this data is over-written or following a call to pam_end(3). The error_status argument is used to indicate to the module the sort of action it is to take in cleaning this data item. As an example, Kerberos creates a ticket file during the authentication phase, this file might be associated with a data item. When pam_end(3) is called by the module, the error_status carries the return value of the pam_authenticate(3) or other libpam function as appropriate. Based on this value the Kerberos module may choose to delete the ticket file (authentication failure) or leave it in place. The error_status may have been logically OR'd with either of the following two values: PAM_DATA_REPLACE When a data item is being replaced (through a second call to pam_set_data) this mask is used. Otherwise, the call is assumed to be from pam_end(3). PAM_DATA_SILENT Which indicates that the process would prefer to perform the cleanup() quietly. That is, discourages logging/messages to the user. RETURN VALUES
PAM_BUF_ERR Memory buffer error. PAM_SUCCESS Data was successful stored. PAM_SYSTEM_ERR A NULL pointer was submitted as PAM handle or the function was called by an application. SEE ALSO
pam_end(3), pam_get_data(3), pam_strerror(3) Linux-PAM Manual 06/04/2011 PAM_SET_DATA(3)
Man Page