blob: 5febf85addaa74bf9912d099b15d9485b680ac88 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
<?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_end'>
<refmeta>
<refentrytitle>pam_end</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo class='setdesc'>Linux-PAM Manual</refmiscinfo>
</refmeta>
<refnamediv id="pam_end-name">
<refname>pam_end</refname>
<refpurpose>termination of PAM transaction</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv>
<funcsynopsis id="pam_end-synopsis">
<funcsynopsisinfo>#include <security/pam_appl.h></funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>pam_end</function></funcdef>
<paramdef>pam_handle_t *<parameter>pamh</parameter></paramdef>
<paramdef>int <parameter>pam_status</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="pam_end-description">
<title>DESCRIPTION</title>
<para>
The <function>pam_end</function> function terminates the PAM
transaction and is the last function an application should call
in the PAM context. Upon return the handle <emphasis>pamh</emphasis>
is no longer valid and all memory associated with it will be
invalid.
</para>
<para>
The <emphasis>pam_status</emphasis> argument should be set to
the value returned to the application by the last PAM
library call.
</para>
<para>
The value taken by <emphasis>pam_status</emphasis> is used as
an argument to the module specific callback function,
<function>cleanup()</function>
(See <citerefentry>
<refentrytitle>pam_set_data</refentrytitle><manvolnum>3</manvolnum>
</citerefentry> and
<citerefentry>
<refentrytitle>pam_get_data</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>). In this way the module can be given notification
of the pass/fail nature of the tear-down process, and perform any
last minute tasks that are appropriate to the module before it is
unlinked. This argument can be logically OR'd with
<emphasis>PAM_DATA_SILENT</emphasis> to indicate that
the module should not treat the call too seriously. It is generally
used to indicate that the current closing of the library is in a
<citerefentry>
<refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>ed
process, and that the parent will take care of cleaning up things
that exist outside of the current process space (files etc.).
</para>
<para>
This function <emphasis>free</emphasis>'s all memory for items
associated with the
<citerefentry>
<refentrytitle>pam_set_item</refentrytitle><manvolnum>3</manvolnum>
</citerefentry> and
<citerefentry>
<refentrytitle>pam_get_item</refentrytitle><manvolnum>3</manvolnum>
</citerefentry> functions. Pointers associated with such objects
are not valid anymore after <function>pam_end</function> was called.
</para>
</refsect1>
<refsect1 id="pam_end-return_values">
<title>RETURN VALUES</title>
<variablelist>
<varlistentry>
<term>PAM_SUCCESS</term>
<listitem>
<para>
Transaction was successful terminated.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PAM_SYSTEM_ERR</term>
<listitem>
<para>
System error, for example a NULL pointer was submitted
as PAM handle or the function was called by a module.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="pam_end-see_also">
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>pam_get_data</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pam_set_data</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pam_start</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pam_strerror</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
</para>
</refsect1>
</refentry>
|