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