Commit Graph

48 Commits

Author SHA1 Message Date
Dag-Erling Smørgrav 1a4edb80d7 Factor out and improve the module ownership / permission check, and add
a similar (but race-proof) check for the policy file.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@499 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-22 11:51:50 +00:00
Dag-Erling Smørgrav 6a92548403 Reorganize the headers and centralize the string tables.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@491 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-12 00:12:32 +00:00
Dag-Erling Smørgrav 6835696a2a Revert large parts of r478. I had forgotten that the module arguments
are actually passed to each service function in the classic (argc,
argv) form.  The only place where the compiler could have caught this
used a type cast, and it did not show up in testing either because all
of the modules I tested use openpam_get_option(3) instead of
manipulating argv directly.

The cleaned-up policy parsing code remains in place, but options are
once more stored as strings, pretty much the way they appear in the
policy file, except that quotes are stripped.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@482 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-03 16:33:02 +00:00
Dag-Erling Smørgrav b373991f87 namespace violation mumble mumble
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@479 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-03 15:40:15 +00:00
Dag-Erling Smørgrav 55f6a50684 Major overhaul of the policy parser to support quoted option values. As a
bonus, it should now be much easier to read and understand.

This also changes the way options are stored: they are now stored as a list
of { key, value } pairs rather than "key=value" strings.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@478 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-03 15:39:18 +00:00
Dag-Erling Smørgrav a1be39bf2d Fix namespace violations in local variables used to prevent double
evaluation in macros.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@461 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-02 14:00:38 +00:00
Dag-Erling Smørgrav 0eae3f21c1 Fix namespace violations in some symbols which have external linkage but
are not part of the API.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@460 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-02 13:56:03 +00:00
Dag-Erling Smørgrav 8799ff11b9 Eliminate a potential double evaluation in one of the tracing macros.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@459 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-11-02 13:50:56 +00:00
Dag-Erling Smørgrav 16844f8456 Update copyright and release notes.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@437 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2011-09-13 12:00:13 +00:00
Dag-Erling Smørgrav b4871fa6dc Update copyright dates.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@435 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2010-03-10 11:38:49 +00:00
Dag-Erling Smørgrav 1f70254313 Fix double-UTF
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@423 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2009-10-29 17:08:38 +00:00
Dag-Erling Smørgrav e9776bfa73 Convert everything to UTF-8.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@422 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2009-10-18 22:19:57 +00:00
Dag-Erling Smørgrav 5a523baf2b Update copyright
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@420 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2009-06-12 19:12:42 +00:00
Dag-Erling Smørgrav 9f0d6d6267 Update copyright, and coincidentially root out the last remaining vestige
of iso-8859-1 in favor of utf-8.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@417 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2008-02-14 18:36:22 +00:00
Dag-Erling Smørgrav ba75190ad0 Convert to correct config.h idiom. We must include it before any other
header, as it may define symbols which modify the behaviour of those headers.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@416 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2008-02-14 18:33:24 +00:00
Dag-Erling Smørgrav d0bf52fbb1 Remove a few more namespace violations. Only one remains, which we can't
remove that without breaking binary compatibility.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@415 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2008-02-14 18:24:25 +00:00
Dag-Erling Smørgrav 8865782b1d Un-screwup the debugging code. Now the "debug" keyword will work even
if OPENPAM_DEBUG is not defined (doing so generates far more debugging
information than you will ever want)


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@414 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2008-02-14 18:06:26 +00:00
Dag-Erling Smørgrav fd5e5d917d Update copyright.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@408 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2007-12-21 11:36:24 +00:00
Dag-Erling Smørgrav ce5921ba4c Convert $P4$ tags to $Id$.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@320 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2006-02-16 20:33:19 +00:00
Dag-Erling Smørgrav 38daa8ac23 Make the ENTER*() and RETURN*() macros safe from side-effects, and
solve the "dereferencing NULL pointer" warning.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@279 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2004-02-17 11:13:13 +00:00
Dag-Erling Smørgrav 5de0bf6bae Autoconfuse.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@251 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-06-09 01:29:37 +00:00
Dag-Erling Smørgrav 044448812b Incorporate patches from Dmitry V. Levin which improve the policy
loader, reducing the number of times each file is read.  Also fix
a few minor nits (such as making facility names and control flags
case insensitive like they are in Solaris).


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@243 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-06-01 14:23:25 +00:00
Dag-Erling Smørgrav 6c68711fe1 Continue improving the new configuration parser, particularly error
reporting: error messages relating to policy files now include line
numbers, and the parser will warn about invalid facility names.

Also fix an off-by-one bug in the option handling code.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@241 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-26 15:31:28 +00:00
Dag-Erling Smørgrav 0fe6f41f7c Overhaul the configuration parser. This adds support for continuation
lines and policy inclusion.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@240 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-25 18:34:31 +00:00
Dag-Erling Smørgrav 592df31db1 Remove trailing semicolons from macros.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@236 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-25 12:53:36 +00:00
Dag-Erling Smørgrav 570d0c7751 With one single exception (where the pointer is obviously being
immediately overwritten), replace all use of free(3) with a macro
that clears the pointer after freeing the memory it pointed to.

Suggested by:	Dmitry V. Levin <ldv@altlinux.org>


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@232 185d5e19-27fe-0310-9dcf-9bff6b9f3609
2003-05-24 19:44:29 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
Renamed from lib/openpam.h (Browse further)