PAM_SET_DATA(3)        FreeBSD Library Functions Manual        PAM_SET_DATA(3)

NAME

     pam_set_data - set module information

SYNOPSIS

     #include <sys/types.h>
     #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));

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_SUCCESS]       Success.

     [PAM_BUF_ERR]       Memory buffer error.

     [PAM_SYSTEM_ERR]    System error.

SEE ALSO

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

STANDARDS

     X/Open Single Sign-On Service (XSSO) - Pluggable Authentication Modules,
     June 1997.

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.

     The OpenPAM library is maintained by Dag-Erling Smorgrav <des@des.dev>.

FreeBSD 15.1-STABLE-HBSD         May 31, 2025                  PAM_SET_DATA(3)