pam_end(3) [x11r4 man page]
PAM_END(3) Linux-PAM Manual PAM_END(3) NAME
pam_end - termination of PAM transaction SYNOPSIS
#include <security/pam_appl.h> int pam_end(pam_handle_t *pamh, int pam_status); DESCRIPTION
The pam_end function terminates the PAM transaction and is the last function an application should call in the PAM context. Upon return the handle pamh is no longer valid and all memory associated with it will be invalid. The pam_status argument should be set to the value returned to the application by the last PAM library call. The value taken by pam_status is used as an argument to the module specific callback function, cleanup() (See pam_set_data(3) and pam_get_data(3)). In this way the module can be given notification of the pass/fail nature of the tear-down process, and perform any last minute tasks that are appropriate to the module before it is unlinked. This argument can be logically OR'd with PAM_DATA_SILENT to indicate to indicate that the module should not treat the call too seriously. It is generally used to indicate that the current closing of the library is in a fork(2)ed process, and that the parent will take care of cleaning up things that exist outside of the current process space (files etc.). This function free's all memory for items associated with the pam_set_item(3) and pam_get_item(3) functions. Pointers associated with such objects are not valid anymore after pam_end was called. RETURN VALUES
PAM_SUCCESS Transaction was successful terminated. PAM_SYSTEM_ERR System error, for example a NULL pointer was submitted as PAM handle or the function was called by a module. SEE ALSO
pam_get_data(3), pam_set_data(3), pam_start(3), pam_strerror(3) Linux-PAM Manual 06/04/2011 PAM_END(3)
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)