PAM "data" To get a PAM data: extern int pam_get_data(const pam_handle_t* pamh, const char* module_data_name, const void** data); this returns (in '*data') the value of the "data" with the given name. To set a PAM data: extern int pam_set_data(const pam_handle_t* pamh, const char* module_data_name, const void* data, void (*cleanup)(pam_handle_t* pamh, void* data, int error_status)); this sets the value of the data with the given name, to the value given by 'data'. The given 'cleanup' function will be invoked when the application ends the pam session. This will give the module a chance to free any resources it allocated earlier. The 'error_status' may have been logically OR'd with any of the following: PAM_DATA_REPLACE - this indicates that the cleanup function was invoked due to a second call to pam_set_data. PAM_DATA_SILENT - the module is instructed to refrain of generating any log records or sending mesasges to the user.