The
pam_getenvlist function returns a copy of the given PAM context's environment list as a pointer to an array of strings. The last element in the array is
NULL. The pointer is suitable for assignment to
environ.
The array and the strings it lists are allocated using
malloc(3), and should be released using
free(3) after use:
char **envlist, **env;
envlist = environ;
environ = pam_getenvlist(pamh);
/* do something nifty */
for (env = environ; *env != NULL; env++)
free(*env);
free(environ);
environ = envlist;