]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/openpam/HISTORY
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
[FreeBSD/stable/10.git] / contrib / openpam / HISTORY
1 OpenPAM Nummularia                                              2013-09-07
2
3  - ENHANCE: Rewrite the dynamic loader to improve readability and
4    reliability.  Modules can now be listed without the ".so" suffix in
5    the policy file; OpenPAM will automatically add it, just like it
6    will automatically add the version number if required.
7
8  - ENHANCE: Allow openpam_straddch(3) to be called without a character
9    so it can be used to preallocate a string.
10
11  - ENHANCE: Improve portability by adding simple asprintf(3) and
12    vasprintf(3) implementations for platforms that don't have them.
13
14  - ENHANCE: Move the libpam sources into a separate subdirectory.
15
16  - ENHANCE: Substantial documentation improvements.
17
18  - BUGFIX: When openpam_readword(3) encountered an opening quote, it
19    would set the first byte in the buffer to '\0', discarding all
20    existing text and, unless the buffer was empty to begin with, all
21    subsequent text as well.  This went unnoticed because none of the
22    unit tests for quoted strings had any text preceding the opening
23    quote.
24
25  - BUGFIX: make --with-modules-dir work the way it was meant to work
26    (but never did).
27 ============================================================================
28 OpenPAM Micrampelis                                             2012-05-26
29
30  - FEATURE: Add an openpam_readword(3) function which reads the next
31    word from an input stream, applying shell quoting and escaping
32    rules.  Add numerous unit tests for openpam_readword(3).
33
34  - FEATURE: Add an openpam_readlinev(3) function which uses the
35    openpam_readword(3) function to read words from an input stream one
36    at a time until it reaches an unquoted, unescaped newline, and
37    returns an array of those words.  Add several unit tests for
38    openpam_readlinev(3).
39
40  - FEATURE: Add a PAM_HOST item which pam_start(3) initializes to the
41    machine's hostname.  This was implemented in Lycopsida but
42    inadvertantly left out of the release notes.
43
44  - FEATURE: In pam_get_authtok(3), if neither the application nor the
45    module have specified a prompt and PAM_HOST and PAM_RHOST are both
46    defined but not equal, use a different default prompt that includes
47    PAM_USER and PAM_HOST.
48
49  - ENHANCE: Rewrite the policy parser to used openpam_readlinev(),
50    which greatly simplifies the code.
51
52  - ENHANCE: The previous implementation of the policy parser relied on
53    the openpam_readline(3) function, which (by design) munges
54    whitespace and understands neither quotes nor backslash escapes.
55    As a result of the aforementioned rewrite, whitespace, quotes and
56    backslash escapes in policy files are now handled in a consistent
57    and predictable manner.
58
59  - ENHANCE: On platforms that have it, use fdlopen(3) to load modules.
60    This closes the race between the ownership / permission check and
61    the dlopen(3) call.
62
63  - ENHANCE: Reduce the amount of pointless error messages generated
64    while searching for a module.
65
66  - ENHANCE: Numerous documentation improvements, both in content and
67    formatting.
68
69  - BUGFIX: A patch incorporated in Lycopsida inadvertantly changed
70    OpenPAM's behavior when several policies exist for the same
71    service, from ignoring all but the first to concatenating them all.
72    Revert to the original behavior.
73
74  - BUGFIX: Plug a memory leak in the policy parser.
75 ============================================================================
76 OpenPAM Lycopsida                                               2011-12-18
77
78  - ENHANCE: removed static build autodetection, which didn't work
79    anyway.  Use an explicit, user-specified preprocessor variable
80    instead.
81
82  - ENHANCE: cleaned up the documentation a bit.
83
84  - ENHANCE: added openpam_subst(3), allowing certain PAM items to be
85    embedded in strings such as prompts.  Apply it to the prompts used
86    by pam_get_user(3) and pam_get_authtok(3).
87
88  - ENHANCE: added support for the user_prompt, authtok_prompt and
89    oldauthtok_prompt module options, which override the prompts passed
90    by the module to pam_set_user(3) and pam_get_authtok(3).
91
92  - ENHANCE: rewrote the policy parser to support quoted option values.
93
94  - ENHANCE: added pamtest(1), a tool for testing modules and policies.
95
96  - ENHANCE: added code to check the ownership and permissions of a
97    module before loading it.
98
99  - ENHANCE: added / improved input validation in many cases, including
100    the policy file and some function arguments.
101 ============================================================================
102 OpenPAM Hydrangea                                               2007-12-21
103
104  - ENHANCE: when compiling with GCC, mark up API functions with GCC
105    attributes where appropriate.
106
107  - BUGFIX: fixed numerous warnings uncovered by GCC 4.
108
109  - ENHANCE: building the documentation is now optional.
110
111  - ENHANCE: corrected a number of mistakes and style issues in the
112    build system.
113
114  - ENHANCE: API function arguments are now const where appropriate, to
115    match corresponding changes in the Solaris PAM and Linux-PAM APIs.
116
117  - ENHANCE: corrected a number of C namespace violations.
118
119  - ENHANCE: the module cache has been removed, allowing long-lived
120    applications to pick up module changes.  This also allows multiple
121    threads to use PAM simultaneously (as long as they use separate PAM
122    contexts), since the module cache was the only part of OpenPAM that
123    was not thread-safe.
124 ============================================================================
125 OpenPAM Figwort                                                 2005-06-16
126
127  - BUGFIX: Correct several small signedness and initialization bugs
128    discovered during review by the NetBSD team.
129
130  - BUGFIX: Modify gendoc.pl to sort cross-references in dictionary
131    order within each section.
132
133  - ENHANCE: if a policy specifies a relative module path, prepend the
134    module directory so we never call dlopen(3) with a relative path.
135
136  - ENHANCE: add a pam.conf(5) manual page.
137 ============================================================================
138 OpenPAM Feterita                                                2005-02-01
139
140  - BUGFIX: Correct numerous markup errors, invalid cross-references,
141    and other issues in the manual pages, with kind assistance from
142    Ruslan Ermilov <ru@freebsd.org>.
143
144  - BUGFIX: Avoid multiple evaluation of macro arguments in ENTERX()
145    and RETURNX() macros.
146
147  - BUGFIX: Remove an unnecessary and non-portable pointer cast in
148    pam_get_data(3).
149
150  - BUGFIX: Fix identical typos in PAM_ACCT_EXPIRED case in
151    pam_strerror(3) and gendoc.pl.
152
153  - ENHANCE: Minor overhaul of the autoconf / build system.
154
155  - ENHANCE: Add openpam_free_envlist(3).
156 ============================================================================
157 OpenPAM Eelgrass                                                2004-02-10
158
159  - BUGFIX: Correct array handling bugs in conversation code.
160
161  - BUGFIX: In openpam_ttyconv(3), don't strip trailing linear
162    whitespace from the user's response.
163
164  - BUGFIX: Many constness issues addressed.
165 ============================================================================
166 OpenPAM Dogwood                                                 2003-07-15
167
168  - ENHANCE: Use the GNU autotools.
169
170  - ENHANCE: Constify the msg field in struct pam_message.
171
172  - BUGFIX: Remove left-over debugging output
173
174  - BUGFIX: Avoid side effects in arguments to the FREE() macro
175
176  - ENHANCE: Make openpam_ttyconv(3) use read(2) rather than fgets(3).
177
178  - BUGFIX: Staticize some variables which shouldn't be global.
179
180  - BUGFIX: Correcly anticipate a NULL user in pam_get_user(3).
181
182  - ENHANCE: Various minor documentation improvements.
183
184 Thanks to Dmitry V. Levin <ldv@altlinux.org> for considerable
185 assistance with this release.
186 ============================================================================
187 OpenPAM Digitalis                                               2003-06-01
188
189  - ENHANCE: Completely rewrite the configuration parser and add
190    support for the "include" control flag.
191
192  - ENHANCE: Improve portability to NetBSD, OpenBSD and Linux.
193
194  - ENHANCE: Lots of additional paranoia.
195
196  - BUGFIX: The sample su(1) application dropped privileges before
197    forking instead of after.
198
199  - ENHANCE: Document openpam_log(3).
200
201  - ENHANCE: Other minor documentation fixes.
202
203 Thanks to Dmitry V. Levin <ldv@altlinux.org> for considerable
204 assistance with this release.
205 ============================================================================
206 OpenPAM Dianthus                                                2003-05-02
207
208  - BUGFIX: Initialize some potentially uninitialized variables.
209
210  - BUGFIX: Silence some warnings emitted by gcc -std=iso9899:1999.
211
212  - BUGFIX: In pam_getenv(), return a pointer to the stored variable
213    instead of a freshly allocated copy.
214
215  - ENHANCE: Detect recursion in openpam_borrow_cred()
216
217  - ENHANCE: Make borrowing one's own credentials a no-op.
218
219  - ENHANCE: Further improve debugging support.
220
221  - ENHANCE: Clean up some variable names.
222 ============================================================================
223 OpenPAM Daffodil                                                2003-01-06
224
225  - ENHANCE: Document dependency on <sys/types.h> (for size_t)
226
227  - ENHANCE: Slightly improve error detection in openpam_ttyconv().
228
229  - BUGFIX: Fix several typos in debugging macros.
230 ============================================================================
231 OpenPAM Cyclamen                                                2002-12-12
232
233  - ENHANCE: Improve recursion detection in openpam_dispatch().
234
235  - ENHANCE: Add debugging messages at entry and exit points of most
236    functions.
237
238  - ENHANCE: Fix some minor style issues.
239
240  - BUGFIX: Add default cases to the switches in openpam_log.c.
241
242  - ENHANCE: Add /usr/local/etc/pam.conf to policy search path.
243
244  - BUGFIX: In openpam_ttyconv(3), print the prompt to stdout rather
245    than stderr.
246 ============================================================================
247 OpenPAM Citronella                                              2002-06-30
248
249  - ENHANCE: Add the "binding" control flag (from Solaris 9).
250
251  - ENHANCE: Define struct pam_repository and PAM_REPOSITORY (from
252    Solaris 9).
253
254  - ENHANCE: Flesh out the pam(3) man page.
255
256  - ENHANCE: Add an openpam(3) page with cross-references to all the
257    documented OpenPAM API extensions.
258
259  - ENHANCE: Add a pam_conv(3) man page describing the conversation
260    system.
261
262  - ENHANCE: Improved sample application.
263
264  - ENHANCE: Added sample pam_unix module.
265
266  - BUGFIX: Various documentation nits.
267 ============================================================================
268 OpenPAM Cinquefoil                                              2002-05-24
269
270  - BUGFIX: Various warnings uncovered by gcc 3.1.
271
272  - ENHANCE: Add a null conversation function, openpam_nullconv(3).
273
274  - BUGFIX: Initialize the "other" chain to all zeroes.
275
276  - ENHANCE: Document openpam_ttyconv(3).
277 ============================================================================
278 OpenPAM Cinnamon                                                2002-05-02
279
280  - ENHANCE: Add a null conversation function, openpam_nullconv().
281
282  - BUGFIX: Various markup bugs in the documentation.
283
284  - BUGFIX: Document <security/openpam.h>.
285
286  - BUGFIX: Duplicate expansion of openpam_log() macro arguments.
287
288  - ENHANCE: Restructure the policy-loading code and align our use of
289    the "other" policy with Solaris and Linux-PAM.
290
291  - ENHANCE: Log dlopen() and dlsym() failures.
292
293  - ENHANCE: In openpam_ttyconv(), emit a newline after error and info
294    messages unless the message contains one already.
295
296  - BUGFIX: In pam_vprompt(), initialize the response pointer to NULL
297    so we can detect whether the conversation function touched it.
298 ============================================================================
299 OpenPAM Cineraria                                               2002-04-14
300
301  - BUGFIX: Fix confusion between token and prompt in
302    pam_get_authtok(3).
303
304  - ENHANCE: Improved documentation.
305
306  - ENHANCE: Adopt the same preprocessor tricks that were used in
307    FreeBSD's version of Linux-PAM to simplify static linking without
308    requiring dummy primitives.
309
310  - ENHANCE: Move the policy-loading code out of pam_start.c.
311
312  - BUGFIX: Fix typo in one of the versions of the openpam_log macro.
313
314  - ENHANCE: Add versioning macros.
315 ============================================================================
316 OpenPAM Cinchona                                                2002-04-08
317
318  - ENHANCE: Improved documentation for several API functions.
319
320  - BUGFIX: Fix bug in pam_set_data() that would result in corruption
321    of the module data list.
322
323  - BUGFIX: Allocate the correct amount of memory for the environment
324    list in pam_putenv().
325
326  - ENHANCE: Change pam_get_authtok()'s prototype so the caller can
327    specify what token it wants.  Also introduce PAM_OLDAUTHTOK_PROMPT.
328
329  - BUGFIX: Plug memory leak in pam_get_user() / pam_get_authtok(), and
330    reduce differences between these very similar functions.
331
332  - ENHANCE: Check flags carefully in pam_authenticate() and
333    pam_chauthtok().
334
335  - BUGFIX: Fix bugs in portability code; libpam now builds on NetBSD.
336
337  - ENHANCE: In pam_get_authtok(), if PAM_OLDAUTHTOK is set, we're
338    asked for PAM_AUTHTOK, and we have to prompt the user, prompt her
339    twice and compare the responses.
340
341  - ENHANCE: Add openpam_{borrow,restore}_cred(), for temporarily
342    switching to user credentials.
343
344  - ENHANCE: Add openpam_free_data(), a generic cleanup function for
345    pam_set_data() consumers.
346 ============================================================================
347 OpenPAM Centaury                                                2002-03-14
348
349  - BUGFIX: Add missing #include <string.h> to openpam_log.c.
350
351  - BUGFIX: s/PAM_REINITIALISE_CRED/PAM_REINITIALIZE_CRED/.  XSSO uses
352    the former, but Solaris and Linux-PAM use the latter.
353
354  - BUGFIX: The dynamic loader and the module cache contained a number
355    of bugs which would cause a segmentation fault if pam_start(3) was
356    called again after pam_end(3), as happens in login(1), xdm(1) etc.
357    after a failed login.
358
359  - BUGFIX: Refer to a module by the name used in the policy file, even
360    if the module that was actually loaded was versioned.
361
362  - ENHANCE: Suppress debugging logs, unless compiled with -DDEBUG.
363 ============================================================================
364 OpenPAM Celandine                                               2002-03-05
365
366  - BUGFIX: PAM_TRY_AGAIN is a valid return value for pam_chauthtok().
367
368  - BUGFIX: Run passwd chain twice, first with the PAM_PRELIM_CHECK
369    flag set, then with the PAM_UPDATE_AUTHTOK flag set.
370
371  - BUGFIX: Failure of a "sufficient" module should not terminate the
372    passwd chain if the PAM_PRELIM_CHECK flag is set.
373
374  - BUGFIX: Clear PAM_AUTHTOK after running the service modules.
375
376  - ENHANCE: Prevent applications from specifying the PAM_PRELIM_CHECK
377    or PAM_UPDATE_AUTHTOK flags themselves.
378
379  - BUGFIX: openpam_set_option() did not support changing the value of
380    an existing option.
381
382  - ENHANCE: Add support for module versioning.  OpenPAM will prefer a
383    module with the same version number as the library itself to one
384    with no version number at all.
385 ============================================================================
386 OpenPAM Cantaloupe                                              2002-02-22
387
388  - BUGFIX: The proper use of PAM_SYMBOL_ERR is to indicate an invalid
389    argument to pam_[gs]et_item(3), not to indicate dlsym(3) failures.
390
391  - ENHANCE: Add in-line documentation in most source files, and a Perl
392    script that generates mdoc code from that.
393
394  - BUGFIX: The environment list was not properly NULL-terminated.
395
396  - ENHANCE: Allow the PAM_AUTHTOK_PROMPT item to override the prompt
397    specified by the module.
398
399  - BUGFIX: PAM_NUM_ITEMS was set too low.  It has been moved to
400    pam_constants.h to avoid it going stale again.
401
402  - ENHANCE: Move all code related to static modules into a separate
403    file.
404
405  - ENHANCE: openpam_ttyconv() now masks most signals while prompting the
406    user, and supports setting a timeout (which defaults to off).
407
408  - BUGFIX: Some manual pages referenced XSSO even though they
409    documented OpenPAM-specific functions.
410
411  - ENHANCE: Added openpam_get_option() and openpam_set_option().
412
413  - ENHANCE: openpam_get_authtok() now respects the echo_pass,
414    try_first_pass, and use_first_pass options.
415 ============================================================================
416 OpenPAM Caliopsis                                               2002-02-13
417
418 Fixed a number of bugs in the previous release, including:
419   - a number of bugs in and related to pam_[gs]et_item(3)
420   - off-by-one bug in pam_start.c would trim last character off certain
421     configuration lines
422   - incorrect ordering of an array in openpam_load.c would cause service
423     module functions to get mixed up
424   - missing 'continue' in openpam_dispatch.c caused successes to be
425     counted as failures
426 ============================================================================
427 OpenPAM Calamite                                                2002-02-09
428
429 First (beta) release.
430 ============================================================================
431 $Id: HISTORY 737 2013-09-07 12:53:55Z des $