Commit Graph

370 Commits

Author SHA1 Message Date
Dag-Erling Smørgrav 64d0536448 Add #include <grp.h> which I missed due to namespace pollution.
Submitted by:	Dmitry V. Levin <ldv@altlinux.org>


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@224 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-24 18:32:33 +00:00
Dag-Erling Smørgrav f013f77bff Correct old paste-o.
Submitted by:	Dmitry V. Levin <ldv@altlinux.org>


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@222 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-23 23:47:31 +00:00
Dag-Erling Smørgrav a59c768d3e Update copyright dates for files that have changed this year. Also
change the copyright date on generated man pages from 2002 to 2001-2003
since work on this part of OpenPAM started in late 2001.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@221 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-13 14:54:04 +00:00
Dag-Erling Smørgrav 98f9303b57 Use RTLD_LAZY rather than RTLD_NOW (which apparently isn't supported
on all platforms, notably OpenBSD).

Submitted by:	Mike Petullo <mike@flyn.org>


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@216 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-13 14:42:04 +00:00
Dag-Erling Smørgrav 5ad9bf2e77 Propagate version numbers and installation directories throughout
the tree using Makefile.inc.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@214 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-13 14:37:12 +00:00
Dag-Erling Smørgrav 309a306cfd Constify the return value from pam_getenv(3). This violates XSSO,
but I consider that a bug in the spec.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@211 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-01 23:10:49 +00:00
Dag-Erling Smørgrav ef2e6d8690 If compiled with -DDEBUG, enable debugging right before calling a
module which has the "debug" option, and disable it upon return.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@210 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-01 18:20:03 +00:00
Dag-Erling Smørgrav 8dcae81fe3 Add a global variable controlling the output of debugging messages.
This allows modules etc. to emit PAM_LOG_DEBUG messages independently
of whether libpam was compiled with -DDEBUG.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@209 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-01 18:18:06 +00:00
Dag-Erling Smørgrav a57c4713cf Avoid dereferencing an unitialized dl handle. Also, add a cast to
avoid a warning about assigning void * to a function pointer.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@208 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-01 18:13:09 +00:00
Dag-Erling Smørgrav 01c7951719 Variable initialization issues.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@206 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-01 17:57:17 +00:00
Dag-Erling Smørgrav c85f7eef5b Avoid a NULL pointer dereference if PAM_CONV is non-NULL but its
conv member is NULL.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@205 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-02-16 12:09:51 +00:00
Dag-Erling Smørgrav 80c9bf5c74 Apparently, nobody ever uses pam_getenv(3), because nobody has ever
complained that it didn't work.  Make it return a pointer to the
actual value of the requested environment variable.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@204 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-02-08 21:13:00 +00:00
Dag-Erling Smørgrav b34ff41a8c Nothing beats being an idiot! Avoid passing expressions with side
effects as arguments to macros.  Also impose some sort of consistency
in the naming of variables that hold error codes.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@203 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-02-08 16:41:53 +00:00
Dag-Erling Smørgrav ace4e1987e If the saved effective uid is the same as the current effective uid,
just destroy the saved credentials and return.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@202 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-02-07 16:07:07 +00:00
Dag-Erling Smørgrav 4ad428dc12 If a set of saved credentials already exists when we are called, log
a debugging message and fail.

If the effective uid is non-zero but identical to the target uid,
save the current credentials and return without doing anything else.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@201 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-02-07 16:04:39 +00:00
Dag-Erling Smørgrav a657d3746c More debugging macros: ENTERI() (item type), ENTERN() (int),
ENTERS() (string).  Rename RETURNI() to RETURNN() for consistency.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@200 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-02-02 13:10:00 +00:00
Dag-Erling Smørgrav 8423c93aa2 On second thought, use RETURNS() since environment variables are
strings.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@194 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-01-03 03:49:21 +00:00
Dag-Erling Smørgrav 022f6ea6fd Use RETURNP() rather than RETURNC().
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@193 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-01-03 03:47:06 +00:00
Dag-Erling Smørgrav e8818402d5 Have prompt() return NULL if EOF occurred on stdin, instead of acting
as if the user had just pressed enter.

Obtained from:	TrustedBSD


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@192 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-01-03 03:34:13 +00:00
Dag-Erling Smørgrav 82a6d21d8c Fix a typo in the active version of RETURNC(), and a cosmetic nit
in the active version of RETURNI().


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@191 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-01-03 03:30:52 +00:00
Dag-Erling Smørgrav fa370a5bde Fix typo in debugging macro.
Submitted by:	Mikko Tyolajarvi <mbsd@pacbell.net>


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@189 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-01-03 03:17:16 +00:00
Dag-Erling Smørgrav 20a7a7ae90 Instrument entry and exit points.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@187 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-12-12 17:06:29 +00:00
Dag-Erling Smørgrav bf8598063a Record which primitive is currently executing before calling the
service module.  Use that information to generate a much better
error message when indirect recursion is detected.

Instrument openpam_dispatch()'s entry and exit points.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@186 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-12-12 17:04:04 +00:00
Dag-Erling Smørgrav b0ba976453 Declare _pam_func_name and _pam_err_name.
Add a member to the pam_handle structure indicating which primitive
is currently executing.
Add a ton of debugging macros.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@185 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-12-12 17:01:39 +00:00
Dag-Erling Smørgrav 2fb80ca71d Add an array containing the API names for the PAM primitives.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@184 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-12-12 16:59:21 +00:00
Dag-Erling Smørgrav 7b3ff93221 Add an array of symbolic names for the PAM error codes.
Fix a minor style nit.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@183 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-12-12 16:58:28 +00:00
Dag-Erling Smørgrav e9c79d25f0 Make the log level default to PAM_LOG_ERROR.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@175 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-12-04 15:15:03 +00:00
Dag-Erling Smørgrav 1d796b814b Support /usr/local/etc/pam.conf, for completeness' sake.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@174 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-10-28 13:39:45 +00:00
Dag-Erling Smørgrav fa4be69c1b Write message to stdout, not stderr.
Submitted by:	jmallett
Sponsored by:	Rachel Hestilow <rachel@jerkcity.com>


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@170 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-10-22 19:00:14 +00:00
Dag-Erling Smørgrav 913c1aaf47 Add the PAM_REPOSITORY item (from Solaris 9).
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@164 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-06-30 23:11:38 +00:00
Dag-Erling Smørgrav bfd6af11ec s/pam_info/pam_error/ in documentation.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@163 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-06-30 23:10:59 +00:00
Dag-Erling Smørgrav a9b8bb1e92 Implement the "binding" control flag (from Solaris 9)
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@161 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-06-30 22:41:59 +00:00
Dag-Erling Smørgrav d185910864 Include <sys/types.h> to define size_t.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@160 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-06-30 22:41:17 +00:00
Dag-Erling Smørgrav 1b829e63eb Don't treat PAM_NEW_AUTHTOK_REQD as an error.
Try to emulate Solaris more closely.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@158 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-06-12 18:07:05 +00:00
Dag-Erling Smørgrav ed3d5a8522 DBA update and minor whitespace fixes.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@157 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-06-07 18:22:57 +00:00
Dag-Erling Smørgrav f414e56812 Split the summar page in two (one for the standard API, one for
extensions).  Also add a page about the conversation system, and
remove that information from the pam_start page.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@153 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-05-28 00:58:47 +00:00
Dag-Erling Smørgrav 70792385d0 Conditionalize debugging messages in !STDC, !GNUC case.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@151 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-05-24 15:04:27 +00:00
Dag-Erling Smørgrav 859840dd61 GCC 3 is upon us.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@147 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-05-24 14:27:09 +00:00
Dag-Erling Smørgrav 6013f825ec Add documentation.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@145 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-05-09 19:52:55 +00:00
Dag-Erling Smørgrav 082364c255 Initialize other to all-zeroes before using it.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@142 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-05-03 14:55:03 +00:00
Dag-Erling Smørgrav 472018b4e5 Fall in line with Solaris and Linux-PAM wrt use of the "other" policy:
use it to fill the gaps in incomplete policies as well as to replace
missing ones.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@137 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-05-02 06:08:02 +00:00
Dag-Erling Smørgrav 2cc6bad9fc Don't reference vpath after it's been freed.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@136 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-24 22:50:40 +00:00
Dag-Erling Smørgrav c1bd6712a0 Add colons so gendoc recognizes this as a list rather than a literal
section.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@132 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-17 23:51:34 +00:00
Dag-Erling Smørgrav c51f824179 Set rsp to NULL before calling the conversation function, so we can
later detect if it hasn't been touched.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@130 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-17 07:26:16 +00:00
Dag-Erling Smørgrav ad8d33ef88 Add a null conversation function.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@129 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-17 06:46:51 +00:00
Dag-Erling Smørgrav 2d7706551f Additional debugging messages.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@127 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-15 08:30:42 +00:00
Dag-Erling Smørgrav eeab6a40c4 Don't copy log messages to stderr, even #ifdef DEBUG.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@125 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-15 08:28:43 +00:00
Dag-Erling Smørgrav b055d19eda Print a newline after an error or info message.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@124 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-15 03:26:55 +00:00
Dag-Erling Smørgrav 2dc37c7bb2 Fix highly embarassing typo. This makes a good argument for using
verbose variable names.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@122 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-15 02:31:56 +00:00
Dag-Erling Smørgrav 61c8a26c60 More checks & documentation, and fix some markup nits.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@115 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-14 20:22:20 +00:00
Dag-Erling Smørgrav 2b0fbefd4a Move the policy-loading code into a separate file.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@112 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-12 20:27:47 +00:00
Dag-Erling Smørgrav 56aafe38c0 Add openpam_{borrow,restore}_cred() (for temporarily switching to
user credentials) and openpam_free_data() (generic cleanup function
for pam_set_data() consumers)

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@106 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-08 13:42:13 +00:00
Dag-Erling Smørgrav ff571b036c If PAM_OLDAUTHTOK is set, we're asked for PAM_AUTHTOK, and we have
to prompt the user, prompt her twice and compare the responses.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@105 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-06 21:23:26 +00:00
Dag-Erling Smørgrav c7010177aa Check flags carefully, and add documentation.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@102 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-06 17:41:37 +00:00
Dag-Erling Smørgrav c9f74afc91 Plug memory leak, reduce differences between these very similar
functions, and {add,tweak} documentation.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@101 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-06 17:17:44 +00:00
Dag-Erling Smørgrav 1eafe40ac3 Change pam_get_authtok()'s prototype so the caller can specify
what token it wants.  Also introduce PAM_OLDAUTHTOK_PROMPT.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@100 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-06 17:05:21 +00:00
Dag-Erling Smørgrav 6a52d30938 Allocate the correct amount of memory for the environment list
(forgot to multiply by sizeof(char *)).

Submitted by:	Takanori Saneto <sanewo@ba2.so-net.ne.jp>


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@99 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-02 22:47:12 +00:00
Dag-Erling Smørgrav 8113558d3a Fix braino that arose from confusion between data and dp. This
unbreaks the pam_ldap module.

Based on a patch by Joe Marcus Clarke <marcus@marcuscom.com>.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@98 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-04-01 14:13:56 +00:00
Dag-Erling Smørgrav 87b5599651 Suppress debug logs unless DEBUG is defined.
Sponsored by:	DARPA, NAI Labs.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@95 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-03-14 20:54:16 +00:00
Dag-Erling Smørgrav 70efc25d1c Fix a number of bugs in the module cache:
- Don't log dlopen() failures, since they're rarely interesting;
   instead, log a failure if no module was found at all.

 - When loading  a versioned module, store its logical name in the
   module structure rather than its physical name, since it will be
   looked up by its logical name if it's needed again.

 - Initialize module->next->prev when adding a module to the cache.

 - Set modules to NULL when releasing the last module in the cache.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@94 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-03-07 20:22:38 +00:00
Dag-Erling Smørgrav 8c639c01ef s/Technologies/Technology/ in copyright, and regenerate docs.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@93 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-03-07 18:12:45 +00:00
Dag-Erling Smørgrav f2bc37d0d6 s/PAM_REINITIALISE_CRED/PAM_REINITIALIZE_CRED/
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@92 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-03-07 13:09:46 +00:00
Dag-Erling Smørgrav 321d3cfb35 Add missing #include <string.h>
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@91 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-03-07 12:57:35 +00:00
Dag-Erling Smørgrav 676eb4cd21 Correct markup nit.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@88 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-03-05 14:37:04 +00:00
Dag-Erling Smørgrav b61ca53417 Move most of the dynamic loader code into a separate file, and add
support for module versioning.  OpenPAM will prefer a PAM module with
the same version number as the library itself to one with no version
number at all.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@87 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-03-05 14:20:26 +00:00
Dag-Erling Smørgrav 6f75ed6572 $Id$ -> $P4$ + regenerate man pages.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@86 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-26 04:05:19 +00:00
Dag-Erling Smørgrav 7a936aa997 I was a little quick when I originally wrote this: the code only
supported setting new options.  Add support for unsetting options
and changing the value of existing options.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@85 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-25 17:37:00 +00:00
Dag-Erling Smørgrav 6f078f6f97 Clear PAM_AUTHTOK after running the service modules.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@82 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-23 18:07:30 +00:00
Dag-Erling Smørgrav 8ea571eeba - pam_sm_chauthtok() can return PAM_TRY_AGAIN.
- "sufficient" should not terminate the chain if the PAM_PRELIM_CHECK
  flag is set.

Sponsored by: DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@81 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-23 18:06:45 +00:00
Dag-Erling Smørgrav ffabf53a8c Document PAM_TRY_AGAIN as a valid return value (cf. XSSO pp. 72-73)
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@80 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-23 18:03:53 +00:00
Dag-Erling Smørgrav 274583fefd Whitespace nit.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@76 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-22 22:04:30 +00:00
Dag-Erling Smørgrav 2d71f7049b Respect echo_pass, try_first_pass, use_first_pass options.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@75 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-22 22:04:11 +00:00
Dag-Erling Smørgrav 5c3fadae16 Add openpam_get_option() and openpam_set_option().
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@74 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-22 21:33:49 +00:00
Dag-Erling Smørgrav 4b5df4ce1a Mask signals while prompting the user (except for SIGINT and SIGTSTP),
and add timeout functionality (defaults to off).

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@72 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-22 20:35:00 +00:00
Dag-Erling Smørgrav 3fab86788d Oops, don't build openpam_static() unless OPENPAM_STATIC_MODULES is
defined.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@71 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-20 15:35:17 +00:00
Dag-Erling Smørgrav 8c45582bf1 Move the linker set stuff into a separate file, and rename the
linker set for cosmetic reasons.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@70 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-20 15:33:11 +00:00
Dag-Erling Smørgrav 242138f031 Move PAM_NUM_ITEMS from openpam_impl.h to pam_constants.h so it
doesn't go stale again.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@69 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-20 15:26:40 +00:00
Dag-Erling Smørgrav 3d506282e3 Allow the PAM_AUTHTOK_PROMPT item to override the prompt specified by
the module.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@68 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-20 15:22:09 +00:00
Dag-Erling Smørgrav 246b7f5d29 Terminate the environment list, and log the number of variables.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@67 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-20 00:22:14 +00:00
Dag-Erling Smørgrav 645c7270fc Add in-line documentation. Some functions still lack descriptions.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@63 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-18 19:31:10 +00:00
Dag-Erling Smørgrav 6b7c9e3837 The proper use of PAM_SYMBOL_ERR is to indicate an invalid argument
to pam_[gs]et_item(3).

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@61 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-18 12:26:17 +00:00
Dag-Erling Smørgrav 849893fd10 Log allocation failures.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@60 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 13:21:37 +00:00
Dag-Erling Smørgrav c7df899506 Check *authtok - pam_get_item(3) will succeed even if the item is
NULL.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@58 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 02:19:05 +00:00
Dag-Erling Smørgrav 105c3d4de7 pam_get_item(3) expects a const void **, not a const void *. Also
check that the pam_conv structure it returns is not NULL.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@57 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 02:17:31 +00:00
Dag-Erling Smørgrav 104cfd8443 Add a missing 'continue' in the code for the PAM_SUCCESS case.
Add more debugging log messages.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@56 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 02:16:03 +00:00
Dag-Erling Smørgrav 39a1582d7e Initialize tmp to NULL so that items can be cleared as intended.
Don't forget to fill the pam_conv structure after allocating it.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@55 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 02:14:55 +00:00
Dag-Erling Smørgrav a9a4681bc5 Constify the last argument.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@54 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 02:12:20 +00:00
Dag-Erling Smørgrav 0ebca05841 Log a debug message before calling the service function.
Accept PAM_SUCCESS and PAM_ABORT as valid return codes, even though
the normal code path will not call _openpam_check_error_code() if
the module returns one of them.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@53 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 00:43:57 +00:00
Dag-Erling Smørgrav f8ad159142 Oops, previous commit would cause sprintf() to overrun the malloc()ed
buffer by exactly one character.  Add some slack.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@52 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 00:41:06 +00:00
Dag-Erling Smørgrav 1840f8c6fe Trim whitespace off the end of the format string, and add exactly
one newline character.

If DEBUG is defined, echo the log message to STDERR.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@51 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 00:39:32 +00:00
Dag-Erling Smørgrav ee40844c72 Sort the function names in the correct order (which is not the
alphabetical order).

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@50 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 00:37:01 +00:00
Dag-Erling Smørgrav f62e36ce55 Fix an off-by-one bug that would in some circumstances trim off the
last character of a configuration line.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@49 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-13 00:34:23 +00:00
Dag-Erling Smørgrav fad3985e61 Fix a showstopping NULL dereference in pam_set_item(3).
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@48 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-12 22:42:52 +00:00
Dag-Erling Smørgrav a139b62d54 Introduce pam_v{info,error,prompt}().
Move OpenPAM API extensions into <security/openpam.h> to avoid
namespace pollution for apps or modules that do not use them.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@39 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-07 12:22:08 +00:00
Dag-Erling Smørgrav aada9aaafe Constify.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@38 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-06 16:03:39 +00:00
Dag-Erling Smørgrav d5943da7f6 Provide a fallback for platforms that don't support varadic macros.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@37 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-06 16:03:18 +00:00
Dag-Erling Smørgrav f8a6c31c31 According to bde, it's OK to omit parentheses when taking the size
of an object rather than a type.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@35 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-06 13:25:36 +00:00
Dag-Erling Smørgrav b55243b5c1 Whoa, don't forget to actually resolve symbols once we've located a
dynamic module.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@34 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-04 23:39:07 +00:00
Dag-Erling Smørgrav e683738206 Behave more like Solaris when faced with an empty chain, or a chain
that lists modules that don't implement the required functionality.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@33 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-04 23:36:07 +00:00
Dag-Erling Smørgrav 4166f73f32 Add support for static linking. Also rename a handful of constants
to reduce the chance of every running into a naming conflict.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@32 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-04 23:22:40 +00:00
Dag-Erling Smørgrav 2e2a611647 Store options, and pass them to modules.
Replace the "dispatching" flag with a pam_chain_t pointer.  It is set
to point at the currently executing module right before calling the
module, and cleared right after the module returns.  Note that this
isn't intended to prevent reentrancy in multi-threaded applications,
but simply to prevent modules from using the application interface.

When recursion is detected, return PAM_ABORT rather than
PAM_SYSTEM_ERR, since this is a programmatical error rather than
a runtime one.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@25 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-04 15:00:16 +00:00
Dag-Erling Smørgrav 073edc1836 Circumvent constness issues. OpenPAM is now WARNS4-clean.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@24 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-04 14:53:46 +00:00
Dag-Erling Smørgrav 93f3359d7a Add the file I forgot in #6131.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@22 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-02 18:38:02 +00:00
Dag-Erling Smørgrav 292bd9156a Move linker-related code out into a separate file so it'll be easier
to restructure it later on.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@21 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-02 18:37:08 +00:00
Dag-Erling Smørgrav 46638aa621 Add a flag to struct pam_handle that openpam_dispatch() uses to
detect and prevent indirect recursion.
Fail immediately if the requested chain is empty.
If a module couldn't be loaded, or doesn't provide the requested
service, treat it as a normal failure instead of terminating the
chain.  (Solaris actually ignores this condition!)

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@20 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-02 18:22:20 +00:00
Dag-Erling Smørgrav 99d01aea5e Use 'sizeof(foo)' instead of 'sizeof foo' even where it's not
required.  Although style(9) doesn't say anything about it, this
seems to be the preferred form.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@19 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-02 18:04:31 +00:00
Dag-Erling Smørgrav a980e1d3da Clear module data.
Clear environment.
Use pam_set_item() rather than free() to clear items so they get
properly clobbered.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@18 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-02 17:58:58 +00:00
Dag-Erling Smørgrav 298b19ac93 Clobber items before freeing them.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@17 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-02 17:47:36 +00:00
Dag-Erling Smørgrav 2a23af0e82 Whitespace cleanup + keyword expansion sweep.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@16 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 22:20:07 +00:00
Dag-Erling Smørgrav 236a7d8507 Rename openpam_log() to _openpam_log(), add an argument for the
function name, and wrap it in a macro called openpam_log().

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@13 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 21:35:31 +00:00
Dag-Erling Smørgrav 8c50f570da It turns out dlerror() already includes the module's full path
in the error message.  Avoid logging it twice.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@12 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 21:33:58 +00:00
Dag-Erling Smørgrav ed8e188f27 Belatedly add openpam_findenv.c to the Makefile, and add a missing
#include that I hadn't spotted since it wasn't getting compiled.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@11 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 21:19:32 +00:00
Dag-Erling Smørgrav d57c2aa6ec Rename openpam.h to openpam_impl.h to avoid confusion with
<security/openpam.h>.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@10 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 20:49:12 +00:00
Dag-Erling Smørgrav fbb6651eb0 Add openpam_ttyconv(), a simple tty-based conversation function.
Prototype it in the new <security/openpam.h> header.  Move the
prototype for openpam_log() there too (as well as the log level
constants) so modules and applications can use it if they want to.
Have lib/openpam.h include <security/openpam.h>.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@9 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 20:41:47 +00:00
Dag-Erling Smørgrav 42b796c71c Add non-standard extensions: pam_error(3), pam_get_authtok(3),
pam_info(3), pam_prompt(3).

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@8 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 20:36:30 +00:00
Dag-Erling Smørgrav 6896492a66 Change "invalid" to "unexpected", since we don't actually croak from
this error.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@6 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 20:18:49 +00:00
Dag-Erling Smørgrav 192f4cbfc4 Implement pam_get_user(3).
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@5 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 20:15:51 +00:00
Dag-Erling Smørgrav e31097d63e On second thought, make that PAM_AUTHTOK_PROMPT.
Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@4 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 20:05:20 +00:00
Dag-Erling Smørgrav c6c0a2864f Add non-standard PAM_PASSWD_PROMPT constant to mirror
PAM_USER_PROMPT.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@3 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 19:43:56 +00:00
Dag-Erling Smørgrav 5d027b0909 Import OpenPAM.
The basics (pam_start(), pam_end(), pam_strerror(), item-,
data- and environment-related functions and the six PAM
primitives) are implemented.  A stub is provided for
pam_get_user(), which is not yet implemented.  Stubs are also
provided for XSSO mapping and secondary authentication, though
they are not built and will probably not be implemented for
quite some time.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@1 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2002-02-01 17:16:12 +00:00