---
name: "pam_getenvlist"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/pam_getenvlist"
---

# pam\_getenvlist(3)

returns a list of all the PAM environment variables

## NAME

**pam\_getenvlist** – returns a list of all the PAM environment variables

## SYNOPSIS

**#include \<sys/types.h\>**

**#include \<security/pam\_appl.h\>**

*char \*\**\

**pam\_getenvlist**(*pam\_handle\_t \*pamh*);

## DESCRIPTION

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)](/malloc/3.md), and should be released using [free(3)](/free/3.md) 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;
```

## RETURN VALUES

The **pam\_getenvlist**() function returns NULL on failure.

## SEE ALSO

[free(3)](/free/3.md), [malloc(3)](/malloc/3.md), [pam(3)](/pam/3.md), [pam\_getenv(3)](/pam_getenv/3.md), [pam\_putenv(3)](/pam_putenv/3.md), [pam\_setenv(3)](/pam_setenv/3.md), [environ(7)](/environ/7.md)

## STANDARDS

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

## AUTHORS

The **pam\_getenvlist**() 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 Smørgrav ⟨*des@des.dev*⟩.
