<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                   "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id='pam_getenvlist'>
  <refmeta>
    <refentrytitle>pam_getenvlist</refentrytitle>
    <manvolnum>3</manvolnum>
    <refmiscinfo class='setdesc'>Linux-PAM Manual</refmiscinfo>
  </refmeta>

  <refnamediv id="pam_getenvlist-name">
    <refname>pam_getenvlist</refname>
    <refpurpose>getting the PAM environment</refpurpose>
  </refnamediv>

<!-- body begins here -->

  <refsynopsisdiv>
    <funcsynopsis id='pam_getenvlist-synopsis'>
      <funcsynopsisinfo>#include &lt;security/pam_appl.h&gt;</funcsynopsisinfo>
      <funcprototype>
        <funcdef>char **<function>pam_getenvlist</function></funcdef>
        <paramdef>pam_handle_t *<parameter>pamh</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>


  <refsect1 id='pam_getenvlist-description'>
    <title>DESCRIPTION</title>
    <para>
      The <function>pam_getenvlist</function> function returns a complete
      copy of the PAM environment as associated with the handle
      <emphasis>pamh</emphasis>. The PAM environment variables
      represent the contents of the regular environment variables of the
      authenticated user when service is granted.
    </para>
    <para>
      The format of the memory is a malloc()'d array of char pointers,
      the last element of which is set to NULL. Each of the non-NULL
      entries in this array point to a NUL terminated and malloc()'d
      char string of the form: "<emphasis>name=value</emphasis>".
    </para>
    <para>
      It should be noted that this memory will never be free()'d by
      libpam. Once obtained by a call to
      <function>pam_getenvlist</function>, it is the responsibility of
      the calling application to free() this memory.
    </para>
    <para>
      It is by design, and not a coincidence, that the format and contents
      of the returned array matches that required for the third argument of
      the
      <citerefentry>
        <refentrytitle>execle</refentrytitle><manvolnum>3</manvolnum>
      </citerefentry> function call.
    </para>
  </refsect1>

  <refsect1 id="pam_getenvlist-return_values">
    <title>RETURN VALUES</title>
    <para>
      The <function>pam_getenvlist</function> function returns NULL
      on failure.
    </para>
  </refsect1>

  <refsect1 id='pam_getenvlist-see_also'>
    <title>SEE ALSO</title>
    <para>
      <citerefentry>
        <refentrytitle>pam_start</refentrytitle><manvolnum>3</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>pam_getenv</refentrytitle><manvolnum>3</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>pam_putenv</refentrytitle><manvolnum>3</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>
    </para>
  </refsect1>
</refentry>
