HISTORY revision 236109
1236109SdesOpenPAM Micrampelis						2012-05-26
2236109Sdes
3236109Sdes - FEATURE: Add an openpam_readword(3) function which reads the next
4236109Sdes   word from an input stream, applying shell quoting and escaping
5236109Sdes   rules.  Add numerous unit tests for openpam_readword(3).
6236109Sdes
7236109Sdes - FEATURE: Add an openpam_readlinev(3) function which uses the
8236109Sdes   openpam_readword(3) function to read words from an input stream one
9236109Sdes   at a time until it reaches an unquoted, unescaped newline, and
10236109Sdes   returns an array of those words.  Add several unit tests for
11236109Sdes   openpam_readlinev(3).
12236109Sdes
13236109Sdes - FEATURE: Add a PAM_HOST item which pam_start(3) initializes to the
14236109Sdes   machine's hostname.  This was implemented in Lycopsida but
15236109Sdes   inadvertantly left out of the release notes.
16236109Sdes
17236109Sdes - FEATURE: In pam_get_authtok(3), if neither the application nor the
18236109Sdes   module have specified a prompt and PAM_HOST and PAM_RHOST are both
19236109Sdes   defined but not equal, use a different default prompt that includes
20236109Sdes   PAM_USER and PAM_HOST.
21236109Sdes
22236109Sdes - ENHANCE: Rewrite the policy parser to used openpam_readlinev(),
23236109Sdes   which greatly simplifies the code.
24236109Sdes
25236109Sdes - ENHANCE: The previous implementation of the policy parser relied on
26236109Sdes   the openpam_readline(3) function, which (by design) munges
27236109Sdes   whitespace and understands neither quotes nor backslash escapes.
28236109Sdes   As a result of the aforementioned rewrite, whitespace, quotes and
29236109Sdes   backslash escapes in policy files are now handled in a consistent
30236109Sdes   and predictable manner.
31236109Sdes
32236109Sdes - ENHANCE: On platforms that have it, use fdlopen(3) to load modules.
33236109Sdes   This closes the race between the ownership / permission check and
34236109Sdes   the dlopen(3) call.
35236109Sdes
36236109Sdes - ENHANCE: Reduce the amount of pointless error messages generated
37236109Sdes   while searching for a module.
38236109Sdes
39236109Sdes - ENHANCE: Numerous documentation improvements, both in content and
40236109Sdes   formatting.
41236109Sdes
42236109Sdes - BUGFIX: A patch incorporated in Lycopsida inadvertantly changed
43236109Sdes   OpenPAM's behavior when several policies exist for the same
44236109Sdes   service, from ignoring all but the first to concatenating them all.
45236109Sdes   Revert to the original behavior.
46236109Sdes
47236109Sdes - BUGFIX: Plug a memory leak in the policy parser.
48236109Sdes============================================================================
49228692SdesOpenPAM Lycopsida						2011-12-18
50228692Sdes
51228692Sdes - ENHANCE: removed static build autodetection, which didn't work
52228692Sdes   anyway.  Use an explicit, user-specified preprocessor variable
53228692Sdes   instead.
54228692Sdes
55228692Sdes - ENHANCE: cleaned up the documentation a bit.
56228692Sdes
57228692Sdes - ENHANCE: added openpam_subst(3), allowing certain PAM items to be
58228692Sdes   embedded in strings such as prompts.  Apply it to the prompts used
59228692Sdes   by pam_get_user(3) and pam_get_authtok(3).
60228692Sdes
61228692Sdes - ENHANCE: added support for the user_prompt, authtok_prompt and
62228692Sdes   oldauthtok_prompt module options, which override the prompts passed
63228692Sdes   by the module to pam_set_user(3) and pam_get_authtok(3).
64228692Sdes
65228692Sdes - ENHANCE: rewrote the policy parser to support quoted option values.
66228692Sdes
67228692Sdes - ENHANCE: added pamtest(1), a tool for testing modules and policies.
68228692Sdes
69228692Sdes - ENHANCE: added code to check the ownership and permissions of a
70228692Sdes   module before loading it.
71228692Sdes
72228692Sdes - ENHANCE: added / improved input validation in many cases, including
73228692Sdes   the policy file and some function arguments.
74228692Sdes============================================================================
75174832SdesOpenPAM Hydrangea						2007-12-21
76147455Sdes
77174832Sdes - ENHANCE: when compiling with GCC, mark up API functions with GCC
78174832Sdes   attributes where appropriate.
79174832Sdes
80174832Sdes - BUGFIX: fixed numerous warnings uncovered by GCC 4.
81174832Sdes
82174832Sdes - ENHANCE: building the documentation is now optional.
83174832Sdes
84174832Sdes - ENHANCE: corrected a number of mistakes and style issues in the
85174832Sdes   build system.
86174832Sdes
87174832Sdes - ENHANCE: API function arguments are now const where appropriate, to
88174832Sdes   match corresponding changes in the Solaris PAM and Linux-PAM APIs.
89174832Sdes
90174832Sdes - ENHANCE: corrected a number of C namespace violations.
91174832Sdes
92174832Sdes - ENHANCE: the module cache has been removed, allowing long-lived
93174832Sdes   applications to pick up module changes.  This also allows multiple
94174832Sdes   threads to use PAM simultaneously (as long as they use separate PAM
95174832Sdes   contexts), since the module cache was the only part of OpenPAM that
96174832Sdes   was not thread-safe.
97174832Sdes============================================================================
98228692SdesOpenPAM Figwort							2005-06-16
99174832Sdes
100147455Sdes - BUGFIX: Correct several small signedness and initialization bugs
101147455Sdes   discovered during review by the NetBSD team.
102147455Sdes
103147455Sdes - BUGFIX: Modify gendoc.pl to sort cross-references in dictionary
104147455Sdes   order within each section.
105147455Sdes
106147455Sdes - ENHANCE: if a policy specifies a relative module path, prepend the
107147455Sdes   module directory so we never call dlopen(3) with a relative path.
108147455Sdes
109147455Sdes - ENHANCE: add a pam.conf(5) manual page.
110147455Sdes============================================================================
111141098SdesOpenPAM Feterita						2005-02-01
112141098Sdes
113141098Sdes - BUGFIX: Correct numerous markup errors, invalid cross-references,
114141098Sdes   and other issues in the manual pages, with kind assistance from
115141098Sdes   Ruslan Ermilov <ru@freebsd.org>.
116141098Sdes
117141098Sdes - BUGFIX: Avoid multiple evaluation of macro arguments in ENTERX()
118141098Sdes   and RETURNX() macros.
119141098Sdes
120141098Sdes - BUGFIX: Remove an unnecessary and non-portable pointer cast in
121141098Sdes   pam_get_data(3).
122141098Sdes
123141098Sdes - BUGFIX: Fix identical typos in PAM_ACCT_EXPIRED case in
124141098Sdes   pam_strerror(3) and gendoc.pl.
125141098Sdes
126141098Sdes - ENHANCE: Minor overhaul of the autoconf / build system.
127141098Sdes
128141098Sdes - ENHANCE: Add openpam_free_envlist(3).
129141098Sdes============================================================================
130125647SdesOpenPAM Eelgrass						2004-02-10
131125647Sdes
132125647Sdes - BUGFIX: Correct array handling bugs in conversation code.
133125647Sdes
134125647Sdes - BUGFIX: In openpam_ttyconv(3), don't strip trailing linear
135125647Sdes   whitespace from the user's response.
136125647Sdes
137125647Sdes - BUGFIX: Many constness issues addressed.
138125647Sdes============================================================================
139117610SdesOpenPAM Dogwood							2003-07-15
140117610Sdes
141117610Sdes - ENHANCE: Use the GNU autotools.
142117610Sdes
143117610Sdes - ENHANCE: Constify the msg field in struct pam_message.
144117610Sdes
145117610Sdes - BUGFIX: Remove left-over debugging output
146117610Sdes
147117610Sdes - BUGFIX: Avoid side effects in arguments to the FREE() macro
148117610Sdes
149117610Sdes - ENHANCE: Make openpam_ttyconv(3) use read(2) rather than fgets(3).
150117610Sdes
151117610Sdes - BUGFIX: Staticize some variables which shouldn't be global.
152117610Sdes
153117610Sdes - BUGFIX: Correcly anticipate a NULL user in pam_get_user(3).
154117610Sdes
155117610Sdes - ENHANCE: Various minor documentation improvements.
156117610Sdes
157117610SdesThanks to Dmitry V. Levin <ldv@altlinux.org> for considerable
158117610Sdesassistance with this release.
159117610Sdes============================================================================
160115619SdesOpenPAM Digitalis						2003-06-01
161115619Sdes
162115619Sdes - ENHANCE: Completely rewrite the configuration parser and add
163115619Sdes   support for the "include" control flag.
164115619Sdes
165115619Sdes - ENHANCE: Improve portability to NetBSD, OpenBSD and Linux.
166115619Sdes
167115619Sdes - ENHANCE: Lots of additional paranoia.
168115619Sdes
169115619Sdes - BUGFIX: The sample su(1) application dropped privileges before
170115619Sdes   forking instead of after.
171115619Sdes
172115619Sdes - ENHANCE: Document openpam_log(3).
173115619Sdes
174115619Sdes - ENHANCE: Other minor documentation fixes.
175115619Sdes
176115619SdesThanks to Dmitry V. Levin <ldv@altlinux.org> for considerable
177115619Sdesassistance with this release.
178115619Sdes============================================================================
179114536SdesOpenPAM Dianthus						2003-05-02
180114536Sdes
181114536Sdes - BUGFIX: Initialize some potentially uninitialized variables.
182114536Sdes
183114536Sdes - BUGFIX: Silence some warnings emitted by gcc -std=iso9899:1999.
184114536Sdes
185114536Sdes - BUGFIX: In pam_getenv(), return a pointer to the stored variable
186114536Sdes   instead of a freshly allocated copy.
187114536Sdes
188114536Sdes - ENHANCE: Detect recursion in openpam_borrow_cred()
189114536Sdes
190114536Sdes - ENHANCE: Make borrowing one's own credentials a no-op.
191114536Sdes
192114536Sdes - ENHANCE: Further improve debugging support.
193114536Sdes
194114536Sdes - ENHANCE: Clean up some variable names.
195114536Sdes============================================================================
196108794SdesOpenPAM Daffodil						2003-01-06
197108794Sdes
198108794Sdes - ENHANCE: Document dependency on <sys/types.h> (for size_t)
199108794Sdes
200108794Sdes - ENHANCE: Slightly improve error detection in openpam_ttyconv().
201108794Sdes
202108794Sdes - BUGFIX: Fix several typos in debugging macros.
203108794Sdes============================================================================
204107937SdesOpenPAM Cyclamen						2002-12-12
205107937Sdes
206107937Sdes - ENHANCE: Improve recursion detection in openpam_dispatch().
207107937Sdes
208107937Sdes - ENHANCE: Add debugging messages at entry and exit points of most
209107937Sdes   functions.
210107937Sdes
211107937Sdes - ENHANCE: Fix some minor style issues.
212107937Sdes
213107937Sdes - BUGFIX: Add default cases to the switches in openpam_log.c.
214107937Sdes
215107937Sdes - ENHANCE: Add /usr/local/etc/pam.conf to policy search path.
216107937Sdes
217107937Sdes - BUGFIX: In openpam_ttyconv(3), print the prompt to stdout rather
218107937Sdes   than stderr.
21991094Sdes============================================================================
22099158SdesOpenPAM Citronella						2002-06-30
22199158Sdes
22299158Sdes - ENHANCE: Add the "binding" control flag (from Solaris 9).
22399158Sdes
22499158Sdes - ENHANCE: Define struct pam_repository and PAM_REPOSITORY (from
22599158Sdes   Solaris 9).
22699158Sdes
227107937Sdes - ENHANCE: Flesh out the pam(3) man page.
22899158Sdes
22999158Sdes - ENHANCE: Add an openpam(3) page with cross-references to all the
23099158Sdes   documented OpenPAM API extensions.
23199158Sdes
23299158Sdes - ENHANCE: Add a pam_conv(3) man page describing the conversation
23399158Sdes   system.
23499158Sdes
23599158Sdes - ENHANCE: Improved sample application.
23699158Sdes
23799158Sdes - ENHANCE: Added sample pam_unix module.
23899158Sdes
23999158Sdes - BUGFIX: Various documentation nits.
24099158Sdes============================================================================
24197241SdesOpenPAM Cinquefoil						2002-05-24
24297241Sdes
24397241Sdes - BUGFIX: Various warnings uncovered by gcc 3.1.
24497241Sdes
24597241Sdes - ENHANCE: Add a null conversation function, openpam_nullconv(3).
24697241Sdes
24797241Sdes - BUGFIX: Initialize the "other" chain to all zeroes.
24897241Sdes
24997241Sdes - ENHANCE: Document openpam_ttyconv(3).
25097241Sdes============================================================================
25195908SdesOpenPAM Cinnamon						2002-05-02
25295908Sdes
25395908Sdes - ENHANCE: Add a null conversation function, openpam_nullconv().
25495908Sdes
25595908Sdes - BUGFIX: Various markup bugs in the documentation.
25695908Sdes
25795908Sdes - BUGFIX: Document <security/openpam.h>.
25895908Sdes
25995908Sdes - BUGFIX: Duplicate expansion of openpam_log() macro arguments.
26095908Sdes
26195908Sdes - ENHANCE: Restructure the policy-loading code and align our use of
26295908Sdes   the "other" policy with Solaris and Linux-PAM.
26395908Sdes
26495908Sdes - ENHANCE: Log dlopen() and dlsym() failures.
26595908Sdes
26695908Sdes - ENHANCE: In openpam_ttyconv(), emit a newline after error and info
26795908Sdes   messages unless the message contains one already.
26895908Sdes
26995908Sdes - BUGFIX: In pam_vprompt(), initialize the response pointer to NULL
27095908Sdes   so we can detect whether the conversation function touched it.
27195908Sdes============================================================================
27294670SdesOpenPAM Cineraria						2002-04-14
27394670Sdes
27495908Sdes - BUGFIX: Fix confusion between token and prompt in
27595908Sdes   pam_get_authtok(3).
27695908Sdes
27794670Sdes - ENHANCE: Improved documentation.
27894670Sdes
27994670Sdes - ENHANCE: Adopt the same preprocessor tricks that were used in
28094670Sdes   FreeBSD's version of Linux-PAM to simplify static linking without
28194670Sdes   requiring dummy primitives.
28294670Sdes
28395908Sdes - ENHANCE: Move the policy-loading code out of pam_start.c.
28494670Sdes
28594670Sdes - BUGFIX: Fix typo in one of the versions of the openpam_log macro.
28694670Sdes
28794670Sdes - ENHANCE: Add versioning macros.
28894670Sdes============================================================================
28994209SdesOpenPAM Cinchona						2002-04-08
29094209Sdes
29194209Sdes - ENHANCE: Improved documentation for several API functions.
29294209Sdes
29394209Sdes - BUGFIX: Fix bug in pam_set_data() that would result in corruption
29494209Sdes   of the module data list.
29594209Sdes
29694209Sdes - BUGFIX: Allocate the correct amount of memory for the environment
29794209Sdes   list in pam_putenv().
29894209Sdes
29994209Sdes - ENHANCE: Change pam_get_authtok()'s prototype so the caller can
30094209Sdes   specify what token it wants.  Also introduce PAM_OLDAUTHTOK_PROMPT.
30194209Sdes
30294209Sdes - BUGFIX: Plug memory leak in pam_get_user() / pam_get_authtok(), and
30394209Sdes   reduce differences between these very similar functions.
30494209Sdes
30594209Sdes - ENHANCE: Check flags carefully in pam_authenticate() and
30694209Sdes   pam_chauthtok().
30794209Sdes
30894209Sdes - BUGFIX: Fix bugs in portability code; libpam now builds on NetBSD.
30994209Sdes
31094209Sdes - ENHANCE: In pam_get_authtok(), if PAM_OLDAUTHTOK is set, we're
31194209Sdes   asked for PAM_AUTHTOK, and we have to prompt the user, prompt her
31294209Sdes   twice and compare the responses.
31394209Sdes
31494209Sdes - ENHANCE: Add openpam_{borrow,restore}_cred(), for temporarily
31594209Sdes   switching to user credentials.
31694209Sdes
31794209Sdes - ENHANCE: Add openpam_free_data(), a generic cleanup function for
31894209Sdes   pam_set_data() consumers.
31994209Sdes============================================================================
320236109SdesOpenPAM Centaury						2002-03-14
32191684Sdes
32292289Sdes - BUGFIX: Add missing #include <string.h> to openpam_log.c.
32392289Sdes
32492289Sdes - BUGFIX: s/PAM_REINITIALISE_CRED/PAM_REINITIALIZE_CRED/.  XSSO uses
32592289Sdes   the former, but Solaris and Linux-PAM use the latter.
32692289Sdes
32792289Sdes - BUGFIX: The dynamic loader and the module cache contained a number
32892289Sdes   of bugs which would cause a segmentation fault if pam_start(3) was
32992289Sdes   called again after pam_end(3), as happens in login(1), xdm(1) etc.
33092289Sdes   after a failed login.
33192289Sdes
33292289Sdes - BUGFIX: Refer to a module by the name used in the policy file, even
33392289Sdes   if the module that was actually loaded was versioned.
33492289Sdes
33592289Sdes - ENHANCE: Suppress debugging logs, unless compiled with -DDEBUG.
33692289Sdes============================================================================
33794209SdesOpenPAM Celandine						2002-03-05
33892289Sdes
33991684Sdes - BUGFIX: PAM_TRY_AGAIN is a valid return value for pam_chauthtok().
34091684Sdes
34191684Sdes - BUGFIX: Run passwd chain twice, first with the PAM_PRELIM_CHECK
34291684Sdes   flag set, then with the PAM_UPDATE_AUTHTOK flag set.
34391684Sdes
34491684Sdes - BUGFIX: Failure of a "sufficient" module should not terminate the
34591684Sdes   passwd chain if the PAM_PRELIM_CHECK flag is set.
34691684Sdes
34791684Sdes - BUGFIX: Clear PAM_AUTHTOK after running the service modules.
34891684Sdes
34991684Sdes - ENHANCE: Prevent applications from specifying the PAM_PRELIM_CHECK
35091684Sdes   or PAM_UPDATE_AUTHTOK flags themselves.
35191684Sdes
35291684Sdes - BUGFIX: openpam_set_option() did not support changing the value of
35391684Sdes   an existing option.
35491684Sdes
35591684Sdes - ENHANCE: Add support for module versioning.  OpenPAM will prefer a
35691684Sdes   module with the same version number as the library itself to one
35791684Sdes   with no version number at all.
35891684Sdes============================================================================
359236109SdesOpenPAM Cantaloupe						2002-02-22
36091100Sdes
36191100Sdes - BUGFIX: The proper use of PAM_SYMBOL_ERR is to indicate an invalid
36291100Sdes   argument to pam_[gs]et_item(3), not to indicate dlsym(3) failures.
36391100Sdes
36491100Sdes - ENHANCE: Add in-line documentation in most source files, and a Perl
36591100Sdes   script that generates mdoc code from that.
36691100Sdes
36791100Sdes - BUGFIX: The environment list was not properly NULL-terminated.
36891100Sdes
36991100Sdes - ENHANCE: Allow the PAM_AUTHTOK_PROMPT item to override the prompt
37091100Sdes   specified by the module.
37191100Sdes
37291100Sdes - BUGFIX: PAM_NUM_ITEMS was set too low.  It has been moved to
37391100Sdes   pam_constants.h to avoid it going stale again.
37491100Sdes
37591100Sdes - ENHANCE: Move all code related to static modules into a separate
37691100Sdes   file.
37791100Sdes
37891100Sdes - ENHANCE: openpam_ttyconv() now masks most signals while prompting the
37991100Sdes   user, and supports setting a timeout (which defaults to off).
38091100Sdes
38191100Sdes - BUGFIX: Some manual pages referenced XSSO even though they
38291100Sdes   documented OpenPAM-specific functions.
38391100Sdes
38491100Sdes - ENHANCE: Added openpam_get_option() and openpam_set_option().
38591100Sdes
38691100Sdes - ENHANCE: openpam_get_authtok() now respects the echo_pass,
38791100Sdes   try_first_pass, and use_first_pass options.
38891100Sdes============================================================================
389236109SdesOpenPAM Caliopsis						2002-02-13
39091097Sdes
39191097SdesFixed a number of bugs in the previous release, including:
39291097Sdes  - a number of bugs in and related to pam_[gs]et_item(3)
39391097Sdes  - off-by-one bug in pam_start.c would trim last character off certain
39491097Sdes    configuration lines
39591097Sdes  - incorrect ordering of an array in openpam_load.c would cause service
39691097Sdes    module functions to get mixed up
39791097Sdes  - missing 'continue' in openpam_dispatch.c caused successes to be
39891097Sdes    counted as failures
39991097Sdes============================================================================
400236109SdesOpenPAM Calamite						2002-02-09
40191094Sdes
40291094SdesFirst (beta) release.
40391094Sdes============================================================================
404236109Sdes$Id: HISTORY 609 2012-05-26 13:57:45Z des $
405