December 21, 2007 PAM_SET_DATA 3

### NAME

pam_set_data - set module information

### LIBRARY

### SYNOPSIS

```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)

### DESCRIPTION

The pam_set_data function associates a pointer to an opaque object with an arbitrary string specified by the ```module_data_name` argument, in the PAM context specified by the ```pamh` argument.

If not ```NULL`, the ```cleanup` argument should point to a function responsible for releasing the resources associated with the object.

This function and its counterpart pam_get_data(3) are useful for managing data that are meaningful only to a particular service module.

### RETURN VALUES

The pam_set_data function returns one of the following values:

[```PAM_BUF_ERR`]
  Memory buffer error.

[```PAM_SYSTEM_ERR`]
  System error.

### SEE ALSO

openpam_free_data(3), pam(3), pam_get_data(3), pam_strerror(3)

### STANDARDS

### AUTHORS

The pam_set_data function and this manual page were developed for the FreeBSD Project by ThinkSec AS and Network Associates Laboratories, the Security Research Division of Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 (``CBOSS''), as part of the DARPA CHATS research program.