OpenPAM is an open source PAM library that focuses on simplicity, correctness, and cleanliness. https://openpam.org/
Go to file
Dag-Erling Smørgrav 7dbd5c38b7 In openpam_parse_chain():
1. Finish a comment which was meant to describe the four different
   termination conditions for the loop in openpam_parse_chain() but
   ended in mid-sentence.

2. Ensure that errno is consistently set to EINVAL if a syntax error
   is encountered in the policy file.

3. If openpam_load_module() fails because the module could not be
   loaded, set errno to ENOEXEC instead of ENOENT.  This closes a hole
   where a missing module or a typo in a module name would cause the
   corresponding chain to fail open.  Normally, if the policy exists
   but cannot be loaded, openpam_load_chain() will return an error,
   and openpam_configure() will discard any partially constructed
   chains.  However, openpam_load_chain() interprets ENOENT to mean
   that the policy was not found, so it does not immediately return an
   error, the partially-loaded chain is not discarded, and the policy
   is incorrectly considered to have been successfully loaded.

4. Ensure that errors encountered while parsing an included policy are
   correctly propagated to the original policy, and that ENOENT while
   processing an include directive is a hard error, not a soft error.

CVE-2014-3879


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@795 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2014-06-03 21:27:48 +00:00
bin Implement keyfile writeback. 2014-03-10 15:31:30 +00:00
doc Move oath_key_from_file() into a separate source file and document it. 2014-03-10 15:37:55 +00:00
include Switch from uint8_t to char. 2014-03-09 11:45:05 +00:00
lib In openpam_parse_chain(): 2014-06-03 21:27:48 +00:00
misc Allow digits in identifiers. 2013-08-21 15:28:24 +00:00
modules Do not use oath_[ht]otp_match() as predicates - a non-zero return can 2014-01-22 15:13:56 +00:00
t Add a test for lines containing more words than will fit in 2014-03-17 14:27:03 +00:00
CREDITS Credit Larry Baird for the is_upper() bug and sort the list. 2014-02-26 16:23:41 +00:00
HISTORY In openpam_parse_chain(): 2014-06-03 21:27:48 +00:00
INSTALL Document --without-doc. 2006-04-12 10:31:52 +00:00
LICENSE Update year 2012-03-31 23:13:20 +00:00
Makefile.am Always build and run the tests last so the results are more easily visible 2012-04-01 20:38:30 +00:00
README Correct email address. 2009-10-29 17:10:22 +00:00
RELNOTES Replace with useful content. 2013-03-05 17:49:55 +00:00
TODO OATH roadmap. 2013-08-20 10:26:12 +00:00
autogen.des Remove --with-modules-dir now that we DTRT by default. 2013-08-15 13:59:33 +00:00
autogen.sh I've always run aclocal before libtoolize, but the latter installs .m4 2013-09-08 19:27:39 +00:00
configure.ac Rudimentary key management tool. 2014-03-10 09:55:15 +00:00
mkpkgng.in Compress man pages before generating the manifest. 2014-03-10 15:43:17 +00:00
pamgdb.in Add a gdb wrapper script that sets LD_LIBRARY_PATH and helps locate the 2012-04-07 18:56:13 +00:00

README

OpenPAM is an open source PAM library that focuses on simplicity,
correctness, and cleanliness.

OpenPAM aims to gather the best features of Solaris PAM, XSSO and
Linux-PAM, plus some innovations of its own.  In areas where these
implementations disagree, OpenPAM tries to remain compatible with
Solaris, at the expense of XSSO conformance and Linux-PAM
compatibility.

These are some of OpenPAM's features:

   - Implements the complete PAM API as described in the original PAM
     paper and in OSF-RFC 86.0; this corresponds to the full XSSO API
     except for mappings and secondary authentication.  Also
     implements some extensions found in Solaris 9.

   - Extends the API with several useful and time-saving functions.

   - Performs strict checking of return values from service modules.

   - Reads configuration from /etc/pam.d/, /etc/pam.conf,
     /usr/local/etc/pam.d/ and /usr/local/etc/pam.conf, in that order;
     this will be made configurable in a future release.

Please direct bug reports and inquiries to <des@des.no>.

$Id$