usr.sbin/makefs/hammer2: Remove redundant hammer2_inode_modify()
[dragonfly.git] / contrib / openpam / HISTORY
blob98032d7e5973d821bee19ce75c61f18934f3954c
1 OpenPAM Tabebuia                                                2019-02-24
3  - BUGFIX: Fix off-by-one bug in pam_getenv(3) which was introduced in
4    OpenPAM Radula.
6  - ENHANCE: Add unit tests for pam_{get,put,set}env(3).
7 ============================================================================
8 OpenPAM Resedacea                                               2017-04-30
10  - BUGFIX: Reinstore the NULL check in pam_end(3) which was removed in
11    OpenPAM Radula, as it breaks common error-handling constructs.
13  - BUGFIX: Return PAM_SYMBOL_ERR instead of PAM_SYSTEM_ERR from the
14    dispatcher when the required service function could not be found.
16  - ENHANCE: Introduce the PAM_BAD_HANDLE error code for when pamh is
17    NULL in API functions that have a NULL check.
19  - ENHANCE: Introduce the PAM_BAD_ITEM, PAM_BAD_FEATURE and
20    PAM_BAD_CONSTANT error codes for situations where we previously
21    incorrectly used PAM_SYMBOL_ERR to denote that an invalid constant
22    had been passed to an API function.
24  - ENHANCE: Improve the RETURN VALUES section in API man pages,
25    especially for functions that cannot fail, which were incorrectly
26    documented as returning -1 on failure.
27 ============================================================================
28 OpenPAM Radula                                                  2017-02-19
30  - BUGFIX: Fix an inverted test which prevented pam_get_authtok(3) and
31    pam_get_user(3) from using application-provided custom prompts.
33  - BUGFIX: Plug a memory leak in pam_set_item(3).
35  - BUGFIX: Plug a potential memory leak in openpam_readlinev(3).
37  - BUGFIX: In openpam_readword(3), support line continuations within
38    whitespace.
40  - ENHANCE: Add a feature flag to control fallback to "other" policy.
42  - ENHANCE: Add a pam_return(8) module which returns an arbitrary
43    code specified in the module options.
45  - ENHANCE: More and better unit tests.
46 ============================================================================
47 OpenPAM Ourouparia                                              2014-09-12
49  - ENHANCE: When executing a chain, require at least one service
50    function to succeed.  This mitigates fail-open scenarios caused by
51    misconfigurations or missing modules.
53  - ENHANCE: Make sure to overwrite buffers which may have contained an
54    authentication token when they're no longer needed.
56  - BUGFIX: Under certain circumstances, specifying a non-existent
57    module (or misspelling the name of a module) in a policy could
58    result in a fail-open scenario.  (CVE-2014-3879)
60  - FEATURE: Add a search path for modules.  This was implemented in
61    Nummularia but inadvertently left out of the release notes.
63  - BUGFIX: The is_upper() predicate only accepted the letter A as an
64    upper-case character instead of the entire A-Z range.  As a result,
65    service and module names containing upper-case letters other than A
66    would be rejected.
67 ============================================================================
68 OpenPAM Nummularia                                              2013-09-07
70  - ENHANCE: Rewrite the dynamic loader to improve readability and
71    reliability.  Modules can now be listed without the ".so" suffix in
72    the policy file; OpenPAM will automatically add it, just like it
73    will automatically add the version number if required.
75  - ENHANCE: Allow openpam_straddch(3) to be called without a character
76    so it can be used to preallocate a string.
78  - ENHANCE: Improve portability by adding simple asprintf(3) and
79    vasprintf(3) implementations for platforms that don't have them.
81  - ENHANCE: Move the libpam sources into a separate subdirectory.
83  - ENHANCE: Substantial documentation improvements.
85  - BUGFIX: When openpam_readword(3) encountered an opening quote, it
86    would set the first byte in the buffer to '\0', discarding all
87    existing text and, unless the buffer was empty to begin with, all
88    subsequent text as well.  This went unnoticed because none of the
89    unit tests for quoted strings had any text preceding the opening
90    quote.
92  - BUGFIX: make --with-modules-dir work the way it was meant to work
93    (but never did).
94 ============================================================================
95 OpenPAM Micrampelis                                             2012-05-26
97  - FEATURE: Add an openpam_readword(3) function which reads the next
98    word from an input stream, applying shell quoting and escaping
99    rules.  Add numerous unit tests for openpam_readword(3).
101  - FEATURE: Add an openpam_readlinev(3) function which uses the
102    openpam_readword(3) function to read words from an input stream one
103    at a time until it reaches an unquoted, unescaped newline, and
104    returns an array of those words.  Add several unit tests for
105    openpam_readlinev(3).
107  - FEATURE: Add a PAM_HOST item which pam_start(3) initializes to the
108    machine's hostname.  This was implemented in Lycopsida but
109    inadvertantly left out of the release notes.
111  - FEATURE: In pam_get_authtok(3), if neither the application nor the
112    module have specified a prompt and PAM_HOST and PAM_RHOST are both
113    defined but not equal, use a different default prompt that includes
114    PAM_USER and PAM_HOST.
116  - ENHANCE: Rewrite the policy parser to used openpam_readlinev(),
117    which greatly simplifies the code.
119  - ENHANCE: The previous implementation of the policy parser relied on
120    the openpam_readline(3) function, which (by design) munges
121    whitespace and understands neither quotes nor backslash escapes.
122    As a result of the aforementioned rewrite, whitespace, quotes and
123    backslash escapes in policy files are now handled in a consistent
124    and predictable manner.
126  - ENHANCE: On platforms that have it, use fdlopen(3) to load modules.
127    This closes the race between the ownership / permission check and
128    the dlopen(3) call.
130  - ENHANCE: Reduce the amount of pointless error messages generated
131    while searching for a module.
133  - ENHANCE: Numerous documentation improvements, both in content and
134    formatting.
136  - BUGFIX: A patch incorporated in Lycopsida inadvertantly changed
137    OpenPAM's behavior when several policies exist for the same
138    service, from ignoring all but the first to concatenating them all.
139    Revert to the original behavior.
141  - BUGFIX: Plug a memory leak in the policy parser.
142 ============================================================================
143 OpenPAM Lycopsida                                               2011-12-18
145  - ENHANCE: removed static build autodetection, which didn't work
146    anyway.  Use an explicit, user-specified preprocessor variable
147    instead.
149  - ENHANCE: cleaned up the documentation a bit.
151  - ENHANCE: added openpam_subst(3), allowing certain PAM items to be
152    embedded in strings such as prompts.  Apply it to the prompts used
153    by pam_get_user(3) and pam_get_authtok(3).
155  - ENHANCE: added support for the user_prompt, authtok_prompt and
156    oldauthtok_prompt module options, which override the prompts passed
157    by the module to pam_set_user(3) and pam_get_authtok(3).
159  - ENHANCE: rewrote the policy parser to support quoted option values.
161  - ENHANCE: added pamtest(1), a tool for testing modules and policies.
163  - ENHANCE: added code to check the ownership and permissions of a
164    module before loading it.
166  - ENHANCE: added / improved input validation in many cases, including
167    the policy file and some function arguments.  (CVE-2011-4122)
168 ============================================================================
169 OpenPAM Hydrangea                                               2007-12-21
171  - ENHANCE: when compiling with GCC, mark up API functions with GCC
172    attributes where appropriate.
174  - BUGFIX: fixed numerous warnings uncovered by GCC 4.
176  - ENHANCE: building the documentation is now optional.
178  - ENHANCE: corrected a number of mistakes and style issues in the
179    build system.
181  - ENHANCE: API function arguments are now const where appropriate, to
182    match corresponding changes in the Solaris PAM and Linux-PAM APIs.
184  - ENHANCE: corrected a number of C namespace violations.
186  - ENHANCE: the module cache has been removed, allowing long-lived
187    applications to pick up module changes.  This also allows multiple
188    threads to use PAM simultaneously (as long as they use separate PAM
189    contexts), since the module cache was the only part of OpenPAM that
190    was not thread-safe.
191 ============================================================================
192 OpenPAM Figwort                                                 2005-06-16
194  - BUGFIX: Correct several small signedness and initialization bugs
195    discovered during review by the NetBSD team.
197  - BUGFIX: Modify gendoc.pl to sort cross-references in dictionary
198    order within each section.
200  - ENHANCE: if a policy specifies a relative module path, prepend the
201    module directory so we never call dlopen(3) with a relative path.
203  - ENHANCE: add a pam.conf(5) manual page.
204 ============================================================================
205 OpenPAM Feterita                                                2005-02-01
207  - BUGFIX: Correct numerous markup errors, invalid cross-references,
208    and other issues in the manual pages, with kind assistance from
209    Ruslan Ermilov <ru@freebsd.org>.
211  - BUGFIX: Avoid multiple evaluation of macro arguments in ENTERX()
212    and RETURNX() macros.
214  - BUGFIX: Remove an unnecessary and non-portable pointer cast in
215    pam_get_data(3).
217  - BUGFIX: Fix identical typos in PAM_ACCT_EXPIRED case in
218    pam_strerror(3) and gendoc.pl.
220  - ENHANCE: Minor overhaul of the autoconf / build system.
222  - ENHANCE: Add openpam_free_envlist(3).
223 ============================================================================
224 OpenPAM Eelgrass                                                2004-02-10
226  - BUGFIX: Correct array handling bugs in conversation code.
228  - BUGFIX: In openpam_ttyconv(3), don't strip trailing linear
229    whitespace from the user's response.
231  - BUGFIX: Many constness issues addressed.
232 ============================================================================
233 OpenPAM Dogwood                                                 2003-07-15
235  - ENHANCE: Use the GNU autotools.
237  - ENHANCE: Constify the msg field in struct pam_message.
239  - BUGFIX: Remove left-over debugging output
241  - BUGFIX: Avoid side effects in arguments to the FREE() macro
243  - ENHANCE: Make openpam_ttyconv(3) use read(2) rather than fgets(3).
245  - BUGFIX: Staticize some variables which shouldn't be global.
247  - BUGFIX: Correcly anticipate a NULL user in pam_get_user(3).
249  - ENHANCE: Various minor documentation improvements.
251 Thanks to Dmitry V. Levin <ldv@altlinux.org> for considerable
252 assistance with this release.
253 ============================================================================
254 OpenPAM Digitalis                                               2003-06-01
256  - ENHANCE: Completely rewrite the configuration parser and add
257    support for the "include" control flag.
259  - ENHANCE: Improve portability to NetBSD, OpenBSD and Linux.
261  - ENHANCE: Lots of additional paranoia.
263  - BUGFIX: The sample su(1) application dropped privileges before
264    forking instead of after.
266  - ENHANCE: Document openpam_log(3).
268  - ENHANCE: Other minor documentation fixes.
270 Thanks to Dmitry V. Levin <ldv@altlinux.org> for considerable
271 assistance with this release.
272 ============================================================================
273 OpenPAM Dianthus                                                2003-05-02
275  - BUGFIX: Initialize some potentially uninitialized variables.
277  - BUGFIX: Silence some warnings emitted by gcc -std=iso9899:1999.
279  - BUGFIX: In pam_getenv(), return a pointer to the stored variable
280    instead of a freshly allocated copy.
282  - ENHANCE: Detect recursion in openpam_borrow_cred()
284  - ENHANCE: Make borrowing one's own credentials a no-op.
286  - ENHANCE: Further improve debugging support.
288  - ENHANCE: Clean up some variable names.
289 ============================================================================
290 OpenPAM Daffodil                                                2003-01-06
292  - ENHANCE: Document dependency on <sys/types.h> (for size_t)
294  - ENHANCE: Slightly improve error detection in openpam_ttyconv().
296  - BUGFIX: Fix several typos in debugging macros.
297 ============================================================================
298 OpenPAM Cyclamen                                                2002-12-12
300  - ENHANCE: Improve recursion detection in openpam_dispatch().
302  - ENHANCE: Add debugging messages at entry and exit points of most
303    functions.
305  - ENHANCE: Fix some minor style issues.
307  - BUGFIX: Add default cases to the switches in openpam_log.c.
309  - ENHANCE: Add /usr/local/etc/pam.conf to policy search path.
311  - BUGFIX: In openpam_ttyconv(3), print the prompt to stdout rather
312    than stderr.
313 ============================================================================
314 OpenPAM Citronella                                              2002-06-30
316  - ENHANCE: Add the "binding" control flag (from Solaris 9).
318  - ENHANCE: Define struct pam_repository and PAM_REPOSITORY (from
319    Solaris 9).
321  - ENHANCE: Flesh out the pam(3) man page.
323  - ENHANCE: Add an openpam(3) page with cross-references to all the
324    documented OpenPAM API extensions.
326  - ENHANCE: Add a pam_conv(3) man page describing the conversation
327    system.
329  - ENHANCE: Improved sample application.
331  - ENHANCE: Added sample pam_unix module.
333  - BUGFIX: Various documentation nits.
334 ============================================================================
335 OpenPAM Cinquefoil                                              2002-05-24
337  - BUGFIX: Various warnings uncovered by gcc 3.1.
339  - ENHANCE: Add a null conversation function, openpam_nullconv(3).
341  - BUGFIX: Initialize the "other" chain to all zeroes.
343  - ENHANCE: Document openpam_ttyconv(3).
344 ============================================================================
345 OpenPAM Cinnamon                                                2002-05-02
347  - ENHANCE: Add a null conversation function, openpam_nullconv().
349  - BUGFIX: Various markup bugs in the documentation.
351  - BUGFIX: Document <security/openpam.h>.
353  - BUGFIX: Duplicate expansion of openpam_log() macro arguments.
355  - ENHANCE: Restructure the policy-loading code and align our use of
356    the "other" policy with Solaris and Linux-PAM.
358  - ENHANCE: Log dlopen() and dlsym() failures.
360  - ENHANCE: In openpam_ttyconv(), emit a newline after error and info
361    messages unless the message contains one already.
363  - BUGFIX: In pam_vprompt(), initialize the response pointer to NULL
364    so we can detect whether the conversation function touched it.
365 ============================================================================
366 OpenPAM Cineraria                                               2002-04-14
368  - BUGFIX: Fix confusion between token and prompt in
369    pam_get_authtok(3).
371  - ENHANCE: Improved documentation.
373  - ENHANCE: Adopt the same preprocessor tricks that were used in
374    FreeBSD's version of Linux-PAM to simplify static linking without
375    requiring dummy primitives.
377  - ENHANCE: Move the policy-loading code out of pam_start.c.
379  - BUGFIX: Fix typo in one of the versions of the openpam_log macro.
381  - ENHANCE: Add versioning macros.
382 ============================================================================
383 OpenPAM Cinchona                                                2002-04-08
385  - ENHANCE: Improved documentation for several API functions.
387  - BUGFIX: Fix bug in pam_set_data() that would result in corruption
388    of the module data list.
390  - BUGFIX: Allocate the correct amount of memory for the environment
391    list in pam_putenv().
393  - ENHANCE: Change pam_get_authtok()'s prototype so the caller can
394    specify what token it wants.  Also introduce PAM_OLDAUTHTOK_PROMPT.
396  - BUGFIX: Plug memory leak in pam_get_user() / pam_get_authtok(), and
397    reduce differences between these very similar functions.
399  - ENHANCE: Check flags carefully in pam_authenticate() and
400    pam_chauthtok().
402  - BUGFIX: Fix bugs in portability code; libpam now builds on NetBSD.
404  - ENHANCE: In pam_get_authtok(), if PAM_OLDAUTHTOK is set, we're
405    asked for PAM_AUTHTOK, and we have to prompt the user, prompt her
406    twice and compare the responses.
408  - ENHANCE: Add openpam_{borrow,restore}_cred(), for temporarily
409    switching to user credentials.
411  - ENHANCE: Add openpam_free_data(), a generic cleanup function for
412    pam_set_data() consumers.
413 ============================================================================
414 OpenPAM Centaury                                                2002-03-14
416  - BUGFIX: Add missing #include <string.h> to openpam_log.c.
418  - BUGFIX: s/PAM_REINITIALISE_CRED/PAM_REINITIALIZE_CRED/.  XSSO uses
419    the former, but Solaris and Linux-PAM use the latter.
421  - BUGFIX: The dynamic loader and the module cache contained a number
422    of bugs which would cause a segmentation fault if pam_start(3) was
423    called again after pam_end(3), as happens in login(1), xdm(1) etc.
424    after a failed login.
426  - BUGFIX: Refer to a module by the name used in the policy file, even
427    if the module that was actually loaded was versioned.
429  - ENHANCE: Suppress debugging logs, unless compiled with -DDEBUG.
430 ============================================================================
431 OpenPAM Celandine                                               2002-03-05
433  - BUGFIX: PAM_TRY_AGAIN is a valid return value for pam_chauthtok().
435  - BUGFIX: Run passwd chain twice, first with the PAM_PRELIM_CHECK
436    flag set, then with the PAM_UPDATE_AUTHTOK flag set.
438  - BUGFIX: Failure of a "sufficient" module should not terminate the
439    passwd chain if the PAM_PRELIM_CHECK flag is set.
441  - BUGFIX: Clear PAM_AUTHTOK after running the service modules.
443  - ENHANCE: Prevent applications from specifying the PAM_PRELIM_CHECK
444    or PAM_UPDATE_AUTHTOK flags themselves.
446  - BUGFIX: openpam_set_option() did not support changing the value of
447    an existing option.
449  - ENHANCE: Add support for module versioning.  OpenPAM will prefer a
450    module with the same version number as the library itself to one
451    with no version number at all.
452 ============================================================================
453 OpenPAM Cantaloupe                                              2002-02-22
455  - BUGFIX: The proper use of PAM_SYMBOL_ERR is to indicate an invalid
456    argument to pam_[gs]et_item(3), not to indicate dlsym(3) failures.
458  - ENHANCE: Add in-line documentation in most source files, and a Perl
459    script that generates mdoc code from that.
461  - BUGFIX: The environment list was not properly NULL-terminated.
463  - ENHANCE: Allow the PAM_AUTHTOK_PROMPT item to override the prompt
464    specified by the module.
466  - BUGFIX: PAM_NUM_ITEMS was set too low.  It has been moved to
467    pam_constants.h to avoid it going stale again.
469  - ENHANCE: Move all code related to static modules into a separate
470    file.
472  - ENHANCE: openpam_ttyconv() now masks most signals while prompting the
473    user, and supports setting a timeout (which defaults to off).
475  - BUGFIX: Some manual pages referenced XSSO even though they
476    documented OpenPAM-specific functions.
478  - ENHANCE: Added openpam_get_option() and openpam_set_option().
480  - ENHANCE: openpam_get_authtok() now respects the echo_pass,
481    try_first_pass, and use_first_pass options.
482 ============================================================================
483 OpenPAM Caliopsis                                               2002-02-13
485 Fixed a number of bugs in the previous release, including:
486   - a number of bugs in and related to pam_[gs]et_item(3)
487   - off-by-one bug in pam_start.c would trim last character off certain
488     configuration lines
489   - incorrect ordering of an array in openpam_load.c would cause service
490     module functions to get mixed up
491   - missing 'continue' in openpam_dispatch.c caused successes to be
492     counted as failures
493 ============================================================================
494 OpenPAM Calamite                                                2002-02-09
496 First (beta) release.