Fix a bug when '-f -H' is used and the target already exists. cpdup was
[dragonfly.git] / contrib / sendmail-8.13.8 / RELEASE_NOTES
1                         SENDMAIL RELEASE NOTES
2       $Id: RELEASE_NOTES,v 8.1777.2.15 2006/08/07 17:22:09 ca Exp $
5 This listing shows the version of the sendmail binary, the version
6 of the sendmail configuration files, the date of release, and a
7 summary of the changes in that release.
9 8.13.8/8.13.8   2006/08/09
10         Fix a regression in 8.13.7: if shared memory is activated, then
11                 the server can erroneously report that there is
12                 insufficient disk space.  Additionally make sure that
13                 an internal variable is set properly to avoid those
14                 misleading errors.  Based on patch from Steve Hubert
15                 of University of Washington.
16         Fix a regression in 8.13.7: the PidFile could be removed after
17                 the process that forks the daemon exited, i.e., if
18                 sendmail -bd is invoked.  Problem reported by Kan Sasaki
19                 of Fusion Communications Corp. and Werner Wiethege.
20         Avoid opening qf files if QueueSortOrder is "none".  Patch from
21                 David F. Skoll.
22         Avoid a crash when finishing due to referencing a freed variable.
23                 Problem reported and diagnosed by Moritz Jodeit.
24         CONTRIB: cidrexpand now deals with /0 by issuing the entire IPv4
25                 range (0..255).
26         LIBMILTER: The "hostname" argument of the xxfi_connect() callback
27                 previously was the equivalent of {client_ptr}.  However,
28                 this did not match the documentation of the function, hence
29                 it has been changed to {client_name}.  See doc/op/op.*
30                 about these macros.
32 8.13.7/8.13.7   2006/06/14
33         A malformed MIME structure with many parts can cause sendmail to
34                 crash while trying to send a mail due to a stack overflow,
35                 e.g., if the stack size is limited (ulimit -s).  This
36                 happens because the recursion of the function mime8to7()
37                 was not restricted.  The function is called for MIME 8 to
38                 7 bit conversion and also to enforce MaxMimeHeaderLength.
39                 To work around this problem, recursive calls are limited to
40                 a depth of MAXMIMENESTING (20); message content after this
41                 limit is treated as opaque and is not checked further.
42                 Problem noted by Frank Sheiness.
43         The changes to the I/O layer in 8.13.6 caused a regression for
44                 SASL mechanisms that use the security layer, e.g.,
45                 DIGEST-MD5.  Problem noted by Robert Stampfli.
46         If a timeout occurs while reading a message (during the DATA phase)
47                 a df file might have been left behind in the queue.
48                 This was another side effect of the changes to the I/O
49                 layer made in 8.13.6.
50         Several minor problems have been fixed that were found by a
51                 Coverity scan of sendmail 8 as part of the NetBSD
52                 distribution. See
53                 Note: the scan generated also a lot of "false positives",
54                 e.g., "error" reports about situations that cannot happen.
55                 Most of those code places are marked with lint(1) comments
56                 like NOTREACHED, but Coverity does not understand those.
57                 Hence an explicit assertion has been added in some cases
58                 to avoid those false positives.
59         If the start of the sendmail daemon fails due to a configuration
60                 error then in some cases shared memory segments or pid
61                 files were not removed.
62         If DSN support is disabled via access_db, then related ESMTP
63                 parameters for MAIL and RCPT should be rejected.  Problem
64                 reported by Akihiro Sagawa.
65         Enabling zlib compression in OpenSSL 0.9.8[ab] breaks the padding
66                 bug work-around.  Hence if sendmail is linked against
67                 either of these versions and compression is available,
68                 the padding bug work-around is turned off.  Based on
69                 patch from Victor Duchovni of Morgan Stanley.
70         CONFIG: FEATURE(`dnsbl') and FEATURE(`enhdnsbl') used
71        as default domain for lookups,
72                 however, that list is no longer available.  To avoid
73                 further problems, no default value is available anymore,
74                 but an argument must be specified.
75         Portability:
76                 Fix compilation on OSF/1 for sfsasl.c.  Patch from
77                 Pieter Bowman of the University of Utah.
79 8.13.6/8.13.6   2006/03/22
80         SECURITY: Replace unsafe use of setjmp(3)/longjmp(3) in the server
81                 and client side of sendmail with timeouts in the libsm I/O
82                 layer and fix problems in that code.  Also fix handling of
83                 a buffer in sm_syslog() which could have been used as an
84                 attack vector to exploit the unsafe handling of
85                 setjmp(3)/longjmp(3) in combination with signals.
86                 Problem detected by Mark Dowd of ISS X-Force.
87         Handle theoretical integer overflows that could triggered if
88                 the server accepted headers larger than the maximum
89                 (signed) integer value.  This is prevented in the default
90                 configuration by restricting the size of a header, and on
91                 most machines memory allocations would fail before reaching
92                 those values.  Problems found by Phil Brass of ISS.
93         If a server returns 421 for an RSET command when trying to start
94                 another transaction in a session while sending mail, do
95                 not trigger an internal consistency check.  Problem found
96                 by Allan E Johannesen of Worcester Polytechnic Institute.
97         If a server returns a 5xy error code (other than 501) in response
98                 to a STARTTLS command despite the fact that it advertised
99                 STARTTLS and that the code is not valid according to RFC
100                 2487 treat it nevertheless as a permanent failure instead
101                 of a protocol error (which has been changed to a
102                 temporary error in 8.13.5).  Problem reported by Jeff
103                 A. Earickson of Colby College.
104         Clear SMTP state after a HELO/EHLO command.  Patch from John
105                 Myers of Proofpoint.
106         Observe MinQueueAge option when gathering entries from the queue
107                 for sorting etc instead of waiting until the entries are
108                 processed.  Patch from Brian Fundakowski Feldman.
109         Set up TLS session cache to properly handle clients that try to
110                 resume a stored TLS session.
111         Properly count the number of (direct) child processes such that
112                 a configured value (MaxDaemonChildren) is not exceeded.
113                 Based on patch from Attila Bruncsak.
114         LIBMILTER: Remove superfluous backslash in macro definition
115                 (libmilter.h).  Based on patch from Mike Kupfer of
116                 Sun Microsystems.
117         LIBMILTER: Don't try to set SO_REUSEADDR on UNIX domain sockets.
118                 This generates an error message from libmilter on
119                 Solaris, though other systems appear to just discard the
120                 request silently.
121         LIBMILTER: Deal with sigwait(2) implementations that return
122                 -1 and set errno instead of returning an error code
123                 directly.  Patch from Chris Adams of HiWAAY Informations
124                 Services.
125         Portability:
126                 Fix compilation checks for closefrom(3) and statvfs(2)
127                 in NetBSD.  Problem noted by S. Moonesamy, patch from
128                 Andrew Brown.
130 8.13.5/8.13.5   2005/09/16
131         Store the filesystem identifier of the df/ subdirectory (if it
132                 exists) in an internal structure instead of the base
133                 directory.  This structure is used decide whether there
134                 is enough free disk space when selecting a queue, hence
135                 without this change queue selection could fail if a df/
136                 subdirectory exists and is on a different filesystem
137                 than the base directory.
138         Use the queue index of the df file (instead of the qf file) for
139                 checking whether a link(2) operation can be used to split
140                 an envelope across queue groups.  Problem found by
141                 Werner Wiethege.
142         If the list of items in the queue is larger than the maximum
143                 number of items to process, sort the queue first and
144                 then cut the list off instead of the other way around.
145                 Patch from Matej Vela of Rudjer Boskovic Institute.
146         Fix helpfile to show full entry for ETRN.  Problem noted by
147                 Penelope Fudd, patch from Neil Rickert of Northern Illinois
148                 University.
149         FallbackSmartHost should also be tried on temporary errors.
150                 From John Beck of Sun Microsystems.
151         When a server responds with 421 to the STARTTLS command then treat
152                 it as a temporary error, not as protocol error.  Problem
153                 noted by Andrey J. Melnikoff.
154         Properly define two functions in libsm as static because their
155                 prototype used static too.  Patch from Peter Klein.
156         Fix syntax errors in helpfile for MAIL and RCPT commands.
157         LIBMILTER: When smfi_replacebody() is called with bodylen equals
158                 zero then do not silently ignore that call.  Patch from
159                 Gurusamy Sarathy of Active State.
160         LIBMILTER: Recognize "421" also in a multi-line reply to terminate
161                 the SMTP session with that error.  Fix from Brian Kantor.
162         Portability: New option HASSNPRINTF which can be set if the OS
163                         has a properly working snprintf(3) to get rid
164                         of the last two (safe) sprintf(3) calls in the
165                         source code.
166                 Add support for AIX 5.3.
167                 Add support for SunOS 5.11 (aka Solaris 11).
168                 Add support for Darwin 8.x.  Patch from Lyndon Nerenberg.
169                 OpenBSD 3.7 has removed support for NETISO.
170         CONFIG: Add OSTYPE(freebsd6) for FreeBSD 6.X.
171                 Set DontBlameSendmail to AssumeSafeChown and
172                         GroupWritableDirPathSafe for OSTYPE(darwin).
173                         Patch from Lyndon Nerenberg.
174                 Some features still used 4.7.1 as enhanced status code which
175                         was supposed to be eliminated in 8.13.0 because some
176                         broken systems misinterpret it as a permanent error.
177                         Patch from Matej Vela of Rudjer Boskovic Institute.
178                 Some default values in a generated cf file did not match
179                         the defaults in the sendmail binary.  Problem noted
180                         by Mike Pechkin.
181         New Files:
182                 cf/ostype/freebsd6.m4
183                 devtools/OS/AIX.5.3
184                 devtools/OS/Darwin.8.x
185                 devtools/OS/SunOS.5.11
186                 include/sm/time.h
188 8.13.4/8.13.4   2005/03/27
189         The bug fixes in 8.13.3 for connection handling uncovered a
190                 different error which could result in connections that
191                 stay in CLOSE_WAIT state due to a variable that was not
192                 properly initialized.  Problem noted by Michael Sims.
193         Deal with empty hostnames in hostsignature().  This bug could lead
194                 to an endless loop when doing LMTP deliveries to another
195                 host.  Problem first reported by Martin Lathoud and
196                 tracked down by Gael Roualland.
197         Make sure return parameters are initialized in getmxrr().  Problem
198                 found by Gael Roualland using valgrind.
199         If shared memory is used and the RunAsUser option is set, then the
200                 owner and group of the shared memory segment is set to
201                 the ids specified RunAsUser and the access mode is set
202                 to 0660 to allow for updates by sendmail processes.
203         The number of queue entries that is (optionally) kept in shared
204                 memory was wrong in some cases, e.g., envelope splitting
205                 and bounce generation.
206         Undo a change made in 8.13.0 to silently truncate long strings
207                 in address rewriting because the message can be triggered
208                 for header checks where long strings are legitimate.
209                 Problem reported by Mary Verge DeSisto, and tracked
210                 down with the help of John Beck of Sun Microsystems.
211         The internal stab map did not obey the -m flag.  Patch from
212                 Rob McMahon of Warwick University, England.
213         The socket map did not obey the -f flag.  Problem noted by
214                 Dan Ringdahl, forwarded by Andrzej Filip.
215         The addition of LDAP recursion in 8.13.0 broke enforcement of
216                 the LDAP map -1 argument which tells the MTA to only
217                 return success if and only if a single LDAP match is found.
218         Add additional error checks in the MTA for milter communication
219                 to avoid a possible segmentation fault.  Based on patch
220                 by Joe Maimon.
221         Do not trigger an assertion if X509_digest() returns success but
222                 does not assign a value to its output parameter.  Based
223                 on patch by Brian Kantor.
224         Add more checks when resetting internal AUTH data (applies only
225                 to Cyrus SASL version 2).  Otherwise an SMTP session might
226                 be dropped after an AUTH failure.
227         Portability:
228                 Add LA_LONGLONG as valid LA_TYPE type for systems that use
229                         "long long" to read load average data, e.g.,
230                         AIX 5.1 in 32 bit mode.  Note: this has to be set
231                         "by hand", it is not (yet) automatically detected.
232                         Problem noted by Burak Bilen.
233                 Use socklen_t for accept(), etc. on AIX 5.x.  This should
234                         fix problems when compiling in 64 bit mode.
235                         Problem first reported by Harry Meiert of
236                         University of Bremen.
237         New Files:
238                 include/sm/sem.h
239                 libsm/sem.c
240                 libsm/t-sem.c
242 8.13.3/8.13.3   2005/01/11
243         Enhance handling of I/O errors, especially EOF, when STARTTLS
244                 is active.
245         Make sure a connection is not reused after it has been closed
246                 due to a 421 error.  Problem found by Allan E Johannesen
247                 of Worcester Polytechnic Institute.
248         Avoid triggering an assertion when sendmail is interrupted while
249                 closing a connection.  Problem found by Allan E Johannesen
250                 of Worcester Polytechnic Institute.
251         Regression: a change in 8.13.2 caused sendmail not to try the
252                 next MX host (or FallbackMXhost if configured) when, at
253                 connection open, the current server returns a 4xy or 5xy
254                 SMTP reply code.  Problem noted by Mark Tranchant.
256 8.13.2/8.13.2   2004/12/15
257         Do not split the first header even if it exceeds the internal
258                 buffer size.  Previously a part of such a header would
259                 end up in the body of the message.  Problem noted by
260                 Simple Nomad of BindView.
261         Do not complain about "cataddr: string too long" when checking
262                 headers that do not contain RFC 2822 addresses.
263                 Problem noted by Rich Graves of Brandeis University.
264         If a server returns a 421 reply to the RSET command between
265                 message deliveries, do not attempt to deliver any more
266                 messages on that connection.  This prevents bogus "Bad
267                 file number" recipient status.  Problem noted by
268                 Allan E Johannesen of Worcester Polytechnic Institute.
269         Allow trailing white space in EHLO command as recommended by RFC
270                 2821.  Problem noted by Ralph Santagato of SBC Services.
271         Deal with clients which use AUTH but negotiate a smaller buffer size
272                 for data exchanges than the value used by sendmail, e.g.,
273                 Cyrus IMAP lmtp server.  Based on patch by Jamie Clark.
274         When passing ESMTP arguments for RCPT to a milter, do not cut
275                 them off at a comma.  Problem noted by Krzysztof Oledzki.
276         Add more logging to milter change header functions to
277                 complement existing logging.  Based on patch from
278                 Gurusamy Sarathy of Active State.
279         Include <lber.h> in include/sm/config.h when LDAPMAP is defined.
280                 Patch from Edgar Hoch of the University of Stuttgart.
281         Fix DNS lookup if IPv6 is enabled when converting an IP address
282                 to a hostname for use with SASL.  Problem noted by Ken Jones;
283                 patch from Hajimu UMEMOTO.
284         CONFIG: For consistency enable MODIFY_MAILER_FLAGS for the prog
285                 mailer.  Patch from John Beck of Sun Microsystems.
286         LIBMILTER: It was possible that xxfi_abort() was called after
287                 xxfi_eom() for a message if some timeouts were triggered.
288                 Patch from Alexey Kravchuk.
289         LIBMILTER: Slightly rearrange mutex use in listener.c to allow
290                 different threads to call smfi_opensocket() and smfi_main().
291                 Patch from Jordan Ritter of Cloudmark.
292         MAIL.LOCAL: Properly terminate MBDB before exiting.  Problem
293                 noted by Nelson Fung.
294         MAIL.LOCAL: make strip-mail.local used a wrong path to access
295                 mail.local.  Problem noted by William Park.
296         VACATION: Properly terminate MBDB before exiting.  Problem noted
297                 by Nelson Fung.
298         Portability:
299                 Add support for DragonFly BSD.
300         New Files:
301                 cf/ostype/dragonfly.m4
302                 devtools/OS/DragonFly
303                 include/sm/os/sm_os_dragonfly.h
304         Deleted Files:
305                 libsm/vsscanf.c
307 8.13.1/8.13.1   2004/07/30
308         Using the default AliasFile ldap: specification would cause the
309                 objectClasses of the LDAP response to be included in the
310                 alias expansion.  Problem noted by Brenden Conte of
311                 Rensselaer Polytechnic Institute.
312         Fix support for a fallback smart host for system where DNS is
313                 (partially) available. From John Beck of Sun Microsystems.
314         Fix SuperSafe=PostMilter behavior when a milter replaces a body
315                 but the data file is not yet stored on disk because it is
316                 smaller than the size of the memory buffer.  Problem noted
317                 by David Russell.
318         Fix certificate revocation list support; if a CRL was specified
319                 but the other side presented a cert that was signed by
320                 a different (trusted) CA than the one which issued the CRL,
321                 verification would always fail.  Problem noted by Al Smith.
322         Run mailer programs as the RunAsUser when RunAsUser is set and
323                 the F=S mailer flag is set without a U= mailer equate.
324                 Problem noted by John Gardiner Myers of Proofpoint.
325         ${nbadrcpts} was off by one if BadRcptThrottle is zero.
326                 Patch from Sung-hoon Choi of DreamWiz Inc.
327         CONFIG: Emit a warning if FEATURE(`access_db') is used after
328                 FEATURE(`greet_pause') because then the latter will not
329                 use the access map.  Note: if no default value is given
330                 for FEATURE(`greet_pause') then it issues an error if
331                 FEATURE(`access_db') is not specified before it.
332                 Problem noted by Alexander Dalloz of University of
333                 Bielefeld.
334         CONFIG: Invoke ruleset Local_greet_pause if FEATURE(`greet_pause')
335                 is used to give more flexibility for local changes.
336         Portability:
337                 Fix a 64 bit problem in the socket map code.  Problem
338                         noted by Geoff Adams.
339                 NetBSD 2.0F has closefrom(3).  Patch from Andrew Brown.
340                 NetBSD can use sysctl(3) to get the number of CPUs in
341                         a system.  Patch from Andrew Brown.
342                 Add a README file in doc/op/ to explain potential
343                         incompatibilities with various *roff related
344                         tools.  Problem tracked down by Per Hedeland.
345         New Files:
346                 doc/op/README
348 8.13.0/8.13.0   2004/06/20
349         Do not include AUTH data in a bounce to avoid leaking confidential
350                 information.  See also cf/README about MSP and the section
351                 "Providing SMTP AUTH Data when sendmail acts as Client".
352                 Problem noted by Neil Rickert of Northern Illinois
353                 University.
354         Fix compilation error in libsm/clock.c for -D_FFR_SLEEP_USE_SELECT=n
355                 and -DSM_CONF_SETITIMER=0.  Problem noted by Juergen Georgi
356                 of RUS University of Stuttgart.
357         Fix bug in conversion from 8bit to quoted-printable. Problem found
358                 by Christof Haerens, patch from Per Hedeland.
359         Add support for LDAP recursion based on types given to attribute
360                 specifications in an LDAP map definition.  This allows
361                 LDAP queries to return a new query, a DN, or an LDAP
362                 URL which will in turn be queried.  See the ``LDAP
363                 Recursion'' section of doc/op/ for more information.
364                 Based on patch from Andrew Baucom.
365         Extend the default LDAP specifications for AliasFile
366                 (O AliasFile=ldap:) and file classes (F{X}@LDAP) to
367                 include support for LDAP recursion via new attributes.
368                 See ``USING LDAP FOR ALIASES, MAPS, and CLASSES'' section
369                 of cf/README for more information.
370         New option for LDAP maps: the -w option allows you to specify the
371                 LDAP API/protocol version to use.  The default depends on
372                 the LDAP library.
373         New option for LDAP maps: the -H option allows you to specify an
374                 LDAP URI instead of specifying the LDAP server via -h host
375                 and -p port.  This also allows for the use of LDAP over
376                 SSL and connections via named sockets if your LDAP
377                 library supports it.
378         New compile time flag SM_CONF_LDAP_INITIALIZE: set this if
379                 ldap_initialize(3) is available (and LDAPMAP is set).
380         If MaxDaemonChildren is set and a command is repeated too often
381                 during a SMTP session then terminate it just like it is
382                 done for too many bad SMTP commands.
383         Basic connection rate control support has been added: the daemon
384                 maintains the number of incoming connections per client
385                 IP address and total in the macros {client_rate} and
386                 {total_rate}, respectively.  These macros can be used
387                 in the cf file to impose connection rate limits.
388                 A new option ConnectionRateWindowSize (default: 60s)
389                 determines the length of the interval for which the
390                 number of connections is stored.  Based on patch from
391                 Jose Marcio Martins da Cruz, Ecole des Mines de Paris.
392         Add optional protection from open proxies and SMTP slammers which
393                 send SMTP traffic without waiting for the SMTP greeting.
394                 If enabled by the new ruleset greet_pause (see
395                 FEATURE(`greet_pause')), sendmail will wait the specified
396                 amount of time before sending the initial 220 SMTP
397                 greeting.  If any traffic is received before then, a 554
398                 SMTP response is sent and all SMTP commands are rejected
399                 during that connection.
400         If 32 NOOP (or unknown/bad) commands are issued by a client the SMTP
401                 server could sleep for a very long time.  Fix based on
402                 patch from Tadashi Kobayashi of IIJ.
403         Fix a potential memory leak in persistent queue runners if the
404                 number of entries in the queue exceeds the limit of jobs.
405                 Problem noted by Steve Hubert of University of Washington.
406         Do not use 4.7.1 as enhanced status code because some broken systems
407                 misinterpret it as a permanent error.
408         New value for SuperSafe: PostMilter which will delay fsync() until
409                 all milters accepted the mail.  This can increase
410                 performance if many mails are rejected by milters due to
411                 body scans.  Based on patch from David F. Skoll.
412         New macro {msg_id} which contains the value of the Message-Id:
413                 header, whether provided by the client or generated by
414                 sendmail.
415         New macro {client_connections} which contains the number of open
416                 connections in the SMTP server for the client IP address.
417                 Based on patch from Jose Marcio Martins da Cruz, Ecole des
418                 Mines de Paris.
419         sendmail will now remove its pidfile when it exits.  This was done
420                 to prevent confusion caused by running sendmail stop
421                 scripts two or more times, where the second and subsequent
422                 runs would report misleading error messages about sendmail's
423                 pid no longer existing.  See section 1.3.15 of doc/op/
424                 for a discussion of the implications of this, including
425                 how to correct broken scripts which may have depended on
426                 the old behavior.  From John Beck of Sun Microsystems.
427         Support per-daemon input filter lists which override the default
428                 filter list specified in InputMailFilters.  The filters
429                 can be listed in the I= equate of DaemonPortOptions.
430         Do not add all domain prefixes of the hostname to class 'w'.  If
431                 your configuration relies on this behavior, you have to
432                 add those names to class 'w' yourself.  Problem noted
433                 by Sander Eerkes.
434         Support message quarantining in the mail queue.  Quarantined
435                 messages are not run on normal queue displays or runs
436                 unless specifically requested with -qQ.  Quarantined queue
437                 files are named with an hf prefix instead of a qf prefix.
438         The -q command line option now can specify which queue to display
439                 or run.  -qQ operates on quarantined queue items.  -qL
440                 operates on lost queue items.
441         Restricted mail queue runs and displays can be done based on the
442                 quarantined reason using -qQtext to run or display
443                 quarantined items if the quarantine reason contains the
444                 given text.  Similarly, -q!Qtext will run or display
445                 quarantined items which do not have the given text in the
446                 quarantine reason.
447         Items in the queue can be quarantined or unquarantined using the
448                 new -Q option.  See doc/op/ for more information.
449         When displaying the quarantine mailq with 'mailq -qQ', the
450                 quarantine reason is shown in a new line prefixed by
451                 "QUARANTINE:".
452         A new error code for the $#error mailer, $@ quarantine, can be used
453                 to quarantine messages in check_* (except check_compat) and
454                 header check rulesets.  The $: of the mailer triplet will
455                 be used for the quarantine reason.
456         Add a new quarantine count to the mailstats collected.
457         Add a new macro ${quarantine} which is the quarantine reason for a
458                 message if it is quarantined.
459         New map type "socket" for a trivial query protocol over UNIX domain
460                 or TCP sockets (requires compile time option SOCKETMAP).
461                 See sendmail/README and doc/op/ for details as well as
462        and in contrib.
463                 Code donated by Bastiaan Bakker of LifeLine Networks.
464         Define new macro ${client_ptr} which holds the result of the PTR
465                 lookup for the client IP address.  Note: this is the same
466                 as ${client_name} if and only if ${client_resolve} is OK.
467         Add a new macro ${nbadrcpts} which contains the number of bad
468                 recipients received so far in a transaction.
469         Call check_relay with the value of ${client_name} to deal with bogus
470                 DNS entries.  See also FEATURE(`use_client_ptr').  Problem
471                 noted by Kai Schlichting.
472         Treat Delivery-Receipt-To: headers the same as Return-Receipt-To:
473                 headers (turn them into DSNs).  Delivery-Receipt-To: is
474                 apparently used by SIMS (Sun Internet Mail System).
475         Enable connection caching for LPC mailers.  Patch from Christophe
476                 Wolfhugel of France Telecom Oleane.
477         Do not silently truncate long strings in address rewriting.
478         Add support for Cyrus SASL version 2.  From Kenneth Murchison of
479                 Oceana Matrix Ltd.
480         Add a new AuthOption=m flag to require the use of mechanisms which
481                 support mutual authentication.  From Kenneth Murchison of
482                 Oceana Matrix Ltd.
483         Fix logging of TLS related problems (introduced in 8.12.11).
484         The macros {auth_author} and {auth_authen} are stored in xtext
485                 format just like the STARTTLS related macros to avoid
486                 problems with parsing them.  Problem noted by Pierangelo
487                 Masarati of SysNet s.n.c.
488         New option AuthRealm to set the authentication realm that is
489                 passed to the Cyrus SASL library.  Patch from Gary Mills
490                 of the University of Manitoba.
491         Enable AUTH mechanism EXTERNAL if STARTTLS verification was
492                 successful, otherwise relaying would be allowed if
493                 EXTERNAL is listed in TRUST_AUTH_MECH() and STARTTLS
494                 is active.
495         Add basic support for certificate revocation lists.  Note: if a
496                 CRLFile is specified but the file is unusable, STARTTLS
497                 is disabled.  Based on patch by Ralf Hornik.
498         Enable workaround for inconsistent Cyrus SASLv1 API for mechanisms
499                 DIGEST-MD5 and LOGIN.
500         Write pid to file also if sendmail only acts as persistent queue
501                 runner.  Proposed by Gary Mills of the University of Manitoba.
502         Keep daemon pid file(s) locked so other daemons don't try to
503                 overwrite each other's pid files.
504         Increase maximum length of logfile fields for {cert_subject} and
505                 {cert_issuer} from 128 to 256.  Requested by Christophe
506                 Wolfhugel of France Telecom.
507         Log the TLS verification message on the STARTTLS= log line at
508                 LogLevel 12 or higher.
509         If the MSP is invoked with the verbose option (-v) then it will
510                 try to use the SMTP command VERB to propagate this option
511                 to the MTA which in turn will show the delivery just like
512                 it was done before the default 8.12 separation of MSP and
513                 MTA.  Based on patch by Per Hedeland.
514         If a daemon is refusing connections for longer than the time specified
515                 by the new option RejectLogInterval (default: 3 hours) due
516                 to high load, log this information.  Patch from John Beck
517                 of Sun Microsystems.
518         Remove the ability for non-trusted users to raise the value of
519                 CheckpointInterval on the command line.
520         New mailer flag 'B' to strip leading backslashes, which is a
521                 subset of the functionality of the 's' flag.
522         New mailer flag 'W' to ignore long term host status information.
523                 Patch from Juergen Georgi of RUS University of Stuttgart.
524         Enable generic mail filter API (milter) by default.  To turn
525                 it off, add -DMILTER=0 to the compile time options.
526         An internal SMTP session discard flag was lost after an RSET/HELO/EHLO
527                 causing subsequent messages to be sent instead of being
528                 discarded.  This also caused milter callbacks to be called
529                 out of order after the SMTP session was reset.
530         New option RequiresDirfsync to turn off the compile time flag
531                 REQUIRES_DIR_FSYNC at runtime.  See sendmail/README for
532                 further information.
533         New command line option -D logfile to send debug output to
534                 the indicated log file instead of stdout.
535         Add Timeout.queuereturn.dsn and Timeout.queuewarn.dsn to control
536                 queue return and warning times for delivery status
537                 notifications.
538         New queue sort order option: 'n'one for not sorting the queue entries
539                 at all.
540         Several more return values for ruleset srv_features have been added
541                 to enable/disable certain features in the server per
542                 connection.  See doc/op/ for details.
543         Support for SMTP over SSL (smtps), activated by Modifier=s
544                 for DaemonPortOptions.
545         Continue with DNS lookups on ECONNREFUSED and TRY_AGAIN when
546                 trying to canonify hostnames.  Suggested by Neil Rickert
547                 of Northern Illinois University.
548         Add support for a fallback smart host (option FallbackSmartHost) to
549                 be tried as a last resort after all other fallbacks.  This
550                 is designed for sites with partial DNS (e.g., an accurate
551                 view of inside the company, but an incomplete view of
552                 outside).  From John Beck of Sun Microsystems.
553         Enable timeout for STARTTLS even if client does not start the TLS
554                 handshake.  Based on patch by Andrey J. Melnikoff.
555         Remove deprecated -v option for PH map, use -k instead.  Patch from
556                 Mark Roth of the University of Illinois at Urbana-Champaign.
557         libphclient is version 1.2.x by default, if version 1.1.x is required
558                 then compile with -DNPH_VERSION=10100.  Patch from Mark Roth
559                 of the University of Illinois at Urbana-Champaign.
560         Add Milter.macros.eom, allowing macros to be sent to milter
561                 applications for use in the xxfi_eom() callback.
562         New macro {time} which contains the output of the time(3) function,
563                 i.e., the number of seconds since 0 hours, 0 minutes,
564                 0 seconds, January 1, 1970, Coordinated Universal Time (UTC).
565         If check_relay sets the reply code to "421" the SMTP server will
566                 terminate the SMTP session with a 421 error message.
567         Get rid of dead code that tried to access the environment variable
568                 HOSTALIASES.
569         Deprecate the use of ErrorMode=write.  To enable this in 8.13
570                 compile with -DUSE_TTYPATH=1.
571         Header check rulesets using $>+ (do not strip comments) will get
572                 the header value passed in without balancing quotes,
573                 parentheses, and angle brackets.  Based on patch from
574                 Oleg Bulyzhin.
575         Do not complain and fix up unbalanced quotes, parentheses, and
576                 angle brackets when reading in rulesets.  This allows
577                 rules to be written for header checks to catch strings
578                 that contain quotes, parentheses, and/or angle brackets.
579                 Based on patch from Oleg Bulyzhin.
580         Do not close socket when accept(2) in the daemon encounters
581                 some temporary errors like ECONNABORTED.
582         Added list of CA certificates that are used by members of the
583                 sendmail consortium, see CACerts.
584         Portability:
585                 Two new compile options have been added:
586                         HASCLOSEFROM    System has closefrom(3).
587                         HASFDWALK       System has fdwalk(3).
588                         Based on patch from John Beck of Sun Microsystems.
589                 The Linux kernel version 2.4 series has a broken flock() so
590                         change to using fcntl() locking until they can fix
591                         it.  Be sure to update other sendmail related
592                         programs to match locking techniques.
593                 New compile time option NEEDINTERRNO which should be set
594                         if <errno.h> does not declare errno itself.
595                 Support for UNICOS/mk and UNICOS/mp added, some changes for
596                         UNICOS.  Patches contributed by Aaron Davis and
597                         Brian Ginsbach, Cray Inc., and Manu Mahonen of
598                         Center for Scientific Computing.
599                 Add support for Darwin 7.0/Mac OS X 10.3 (a.k.a. Panther).
600                 Extend support to Darwin 7.x/Mac OS X 10.3 (a.k.a. Panther).
601                 Remove path from compiler definition for Interix because
602                         Interix 3.0 and 3.5 put gcc in different locations.
603                         Also use <sys/mkdev.h> to get the correct
604                         major()/minor() definitions.  Based on feedback
605                         from Mark Funkenhauser.
606         CONFIG: Add support for LDAP recursion to the default LDAP searches
607                 for maps via new attributes.  See the ``USING LDAP FOR
608                 ALIASES, MAPS, and CLASSES'' section of cf/README and
609                 cf/sendmail.schema for more information.
610         CONFIG: Make sure confTRUSTED_USER is valid even if confRUN_AS_USER
611                 is of the form "user:group" when used for
612                 Problem noted by Carsten P. Gehrke, patch from Neil Rickert
613                 of Northern Illinois University.
614         CONFIG: Add a new access DB value of QUARANTINE:reason which
615                 instructs the check_* (except check_compat) to quarantine
616                 the message using the given reason.
617         CONFIG: Use "dns -R A" as map type for dnsbl (just as for enhdnsbl)
618                 instead of "host" to avoid problem with looking up other
619                 DNS records than just A.
620         CONFIG: New option confCONNECTION_RATE_WINDOW_SIZE to define the
621                 length of the interval for which the number of incoming
622                 connections is maintained.
623         CONFIG: New FEATURE(`ratecontrol') to set the limits for connection
624                 rate control for individual hosts or nets.
625         CONFIG: New FEATURE(`conncontrol') to set the limits for the
626                 number of open SMTP connections for individual hosts or nets.
627         CONFIG: New FEATURE(`greet_pause') enables open proxy and SMTP
628                 slamming protection described above.  The feature can
629                 take an argument specifying the milliseconds to wait and/or
630                 use the access database to look the pause time based on
631                 client hostname, domain, IP address, or subnet.
632         CONFIG: New FEATURE(`use_client_ptr') to have check_relay use
633                 $&{client_ptr} as its first argument.  This is useful for
634                 rejections based on the unverified hostname of client,
635                 which turns on the same behavior as in earlier sendmail
636                 versions when delay_checks was not in use.  See also entry
637                 above about check_relay being invoked with ${client_name}.
638         CONFIG: New option confREJECT_LOG_INTERVAL to specify the log
639                 interval when refusing connections for this long.
640         CONFIG: Remove quotes around usage of confREJECT_MSG; in some cases
641                 this requires a change in a mc file.  Requested by
642                 Ted Roberts of Electronic Data Systems.
643         CONFIG: New option confAUTH_REALM to set the authentication realm
644                 that is passed to the Cyrus SASL library.  Patch from
645                 Gary Mills of the University of Manitoba.
646         CONFIG: Rename the (internal) classes {tls}/{src} to {Tls}/{Src}
647                 to follow the naming conventions.
648         CONFIG: Add a third optional argument to local_lmtp to specify
649                 the A= argument.
650         CONFIG: Remove the f flag from the default mailer flags of
651                 local_lmtp.
652         CONFIG: New option confREQUIRES_DIR_FSYNC to turn off the compile
653                 time flag REQUIRES_DIR_FSYNC at runtime.
654         CONFIG: New LOCAL_UUCP macro to insert rules into the generated
655                 cf file at the same place where MAILER(`uucp') inserts
656                 its rules.
657         CONFIG: New options confTO_QUEUERETURN_DSN and confTO_QUEUEWARN_DSN
658                 to control queue return and warning times for delivery
659                 status notifications.
660         CONFIG: New option confFALLBACK_SMARTHOST to define FallbackSmartHost.
661         CONFIG: Add the mc file which has been used to create the cf
662                 file to the end of the cf file when using make in cf/cf/.
663                 Patch from Richard Rognlie.
664         CONFIG: FEATURE(nodns) has been removed, it was a no-op since 8.9.
665                 Use ServiceSwitchFile to turn off DNS lookups, see
666                 doc/op/
667         CONFIG: New option confMILTER_MACROS_EOM (sendmail Milter.macros.eom
668                 option) defines macros to be sent to milter applications for
669                 use in the xxfi_eom() callback.
670         CONFIG: New option confCRL to specify file which contains
671                 certificate revocations lists.
672         CONFIG: Add a new value (sendertoo) for the third argument to
673                 FEATURE(`ldap_routing') which will reject the SMTP
674                 MAIL From: command if the sender address doesn't exist
675                 in LDAP.  See cf/README for more information.
676         CONFIG: Add a fifth argument to FEATURE(`ldap_routing') which
677                 instructs the rulesets on whether or not to do a domain
678                 lookup if a full address lookup doesn't match.  See cf/README
679                 for more information.
680         CONFIG: Add a sixth argument to FEATURE(`ldap_routing') which
681                 instructs the rulesets on whether or not to queue the mail
682                 or give an SMTP temporary error if the LDAP server can't be
683                 reached.  See cf/README for more information.  Based on
684                 patch from Billy Ray Miller of Caterpillar.
685         CONFIG: Experimental support for MTAMark, see cf/README for details.
686         CONFIG: New option confMESSAGEID_HEADER to define a different
687                 Message-Id: header format.  Patch from Bastiaan Bakker
688                 of LifeLine Networks.
689         CONTRIB: New version of cidrexpand which uses Net::CIDR.  From
690                 Derek J. Balling.
691         CONTRIB: oldbind.compat.c has been removed due to security problems.
692                 Found by code inspection done by Reasoning, Inc.
693         DEVTOOLS: Add an example file for devtools/Site/, contributed
694                 by Neil Rickert of Northern Illinois University.
695         LIBMILTER: Add new function smfi_quarantine() which allows the
696                 filter's EOM routine to quarantine the current message.
697                 Filters which use this function must include the
698                 SMFIF_QUARANTINE flag in the registered smfiDesc structure.
699         LIBMILTER: If a milter sets the reply code to "421", the SMTP server
700                 will terminate the SMTP session with that error.
701         LIBMILTER: Upon filter shutdown, libmilter will not remove a
702                 named socket in the file system if it is running as root.
703         LIBMILTER: Add new function smfi_progress() which allows the filter
704                 to notify the MTA that an EOM operation is still in progress,
705                 resetting the timeout.
706         LIBMILTER: Add new function smfi_opensocket() which allows the filter
707                 to attempt to establish the interface socket, and detect
708                 failure to do so before calling smfi_main().
709         LIBMILTER: Add new function smfi_setmlreply() which allows the
710                 filter to return a multi-line SMTP reply.
711         LIBMILTER: Deal with more temporary errors in accept() by ignoring
712                 them instead of stopping after too many occurred.
713                 Suggested by James Carlson of Sun Microsystems.
714         LIBMILTER: Fix a descriptor leak in the sample program found in
715                 docs/sample.html.  Reported by Dmitry Adamushko.
716         LIBMILTER: The sample program also needs to use SMFIF_ADDRCPT.
717                 Reported by Carl Byington of 510 Software Group.
718         LIBMILTER: Document smfi_stop() and smfi_setdbg().  Patches
719                 from Bryan Costales.
720         LIBMILTER: New compile time option SM_CONF_POLL; define this if
721                 poll(2) should be used instead of select(2).
722         LIBMILTER: New function smfi_insheader() and related protocol
723                 amendments to support header insertion operations.
724         MAIL.LOCAL: Add support for hashed mail directories, see
725                 mail.local/README.  Contributed by Chris Adams of HiWAAY
726                 Informations Services.
727         MAILSTATS: Display quarantine message counts.
728         MAKEMAP: Add new flag -D to specify the comment character to use
729                 instead of '#'.
730         VACATION: Add new flag -j to auto-respond to messages regardless of
731                 whether or not the recipient is listed in the To: or Cc:
732                 headers.
733         VACATION: Add new flag -R to specify the envelope sender address
734                 for the auto-response message.
735         New Files:
736                 CACerts
737                 cf/feature/conncontrol.m4
738                 cf/feature/greet_pause.m4
739                 cf/feature/mtamark.m4
740                 cf/feature/ratecontrol.m4
741                 cf/feature/use_client_ptr.m4
742                 cf/ostype/unicos.m4
743                 cf/ostype/unicosmk.m4
744                 cf/ostype/unicosmp.m4
745                 contrib/
746                 contrib/
747                 devtools/OS/Darwin.7.0
748                 devtools/OS/UNICOS-mk
749                 devtools/OS/UNICOS-mp
750                 devtools/Site/site.config.m4.sample
751                 include/sm/os/sm_os_unicos.h
752                 include/sm/os/sm_os_unicosmk.h
753                 include/sm/os/sm_os_unicosmp.h
754                 libmilter/docs/smfi_insheader.html
755                 libmilter/docs/smfi_progress.html
756                 libmilter/docs/smfi_quarantine.html
757                 libmilter/docs/smfi_setdbg.html
758                 libmilter/docs/smfi_setmlreply.html
759                 libmilter/docs/smfi_stop.html
760                 sendmail/ratectrl.c
761         Deleted Files:
762                 cf/feature/nodns.m4
763                 contrib/oldbind.compat.c
764                 devtools/OS/CRAYT3E.2.0.x
765                 devtools/OS/CRAYTS.10.0.x
766                 libsm/vsprintf.c
767         Renamed Files:
768                 devtools/OS/Darwin.7.0 => devtools/OS/Darwin.7.x
770 8.12.11/8.12.11 2004/01/18
771         Use QueueFileMode when opening qf files.  This error was a
772                 regression in 8.12.10.  Problem detected and diagnosed
773                 Lech Szychowski of the Polish Power Grid Company.
774         Properly count the number of queue runners in a work group and
775                 make sure the total limit of MaxQueueChildren is not
776                 exceeded.  Based on patch from Takayuki Yoshizawa of
777                 Techfirm, Inc.
778         Take care of systems that can generate time values where the
779                 seconds can exceed the usual range of 0 to 59.
780                 Problem noted by Randy Diffenderfer of EDS.
781         Avoid regeneration of identical queue identifiers by processes
782                 whose process id is the same as that of the initial
783                 sendmail process that was used to start the daemon.
784                 Problem noted by Randy Diffenderfer of EDS.
785         When a milter invokes smfi_delrcpt() compare the supplied
786                 recipient address also against the printable addresses
787                 of the current list to deal with rewritten addresses.
788                 Based on patch from Sean Hanson of The Asylum.
789         BadRcptThrottle now also works for addresses which return the
790                 error mailer, e.g., virtusertable entries with the
791                 right hand side error:.  Patch from Per Hedeland.
792         Fix printing of 8 bit characters as octals in log messages.
793                 Based on patch by Andrey J. Melnikoff.
794         Undo change of algorithm for MIME 7-bit base64 encoding to 8-bit
795                 text that has been introduced in 8.12.3.  There are some
796                 examples where the new code fails, but the old code works.
797                 To get the 8.12.3-8.12.10 version, compile sendmail with
798                 -DMIME7TO8_OLD=0.  If you have an example of improper
799                 7 to 8 bit conversion please send it to us.
800         Return normal error code for unknown SMTP commands instead of
801                 the one specified by check_relay or a milter for a
802                 connection.  Problem noted by Andrzej Filip.
803         Some ident responses contain data after the terminating CRLF which
804                 causes sendmail to log "POSSIBLE ATTACK...newline in string".
805                 To avoid this everything after LF is ignored.
806         If the operating system supports O_EXLOCK and HASFLOCK is set
807                 then a possible race condition for creating qf files
808                 can be avoided.  Note: the race condition does not
809                 exist within sendmail, but between sendmail and an
810                 external application that accesses qf files.
811         Log the proper options name for TLS related mising files for
812                 the CACertPath, CACertFile, and DHParameters options.
813         Do not split an envelope if it will be discarded, otherwise df
814                 files could be left behind.  Problem found by Wolfgang
815                 Breyha.
816         The use of the environment variables HOME and HOSTALIASES has been
817                 deprecated and will be removed in version 8.13.  This only
818                 effects configuration which preserve those variable via the
819                 'E' command in the cf file as sendmail clears out its entire
820                 environment.
821         Portability:
822                 Add support for Darwin 7.0/Mac OS X 10.3 (a.k.a. Panther).
823                 Solaris 10 has unsetenv(), patch from Craig Mohrman of
824                         Sun Microsystems.
825         LIBMILTER: Add extra checks in case a broken MTA sends bogus data
826                 to libmilter.  Based on code review by Rob Grzywinski.
827         SMRSH: Properly assemble commands that contain '&&' or '||'.
828                 Problem noted by Eric Lee of Talking Heads.
829         New Files:
830                 devtools/OS/Darwin.7.0
832 8.12.10/8.12.10 2003/09/24 (Released: 2003/09/17)
833         SECURITY: Fix a buffer overflow in address parsing.  Problem
834                 detected by Michal Zalewski, patch from Todd C. Miller
835                 of Courtesan Consulting.
836         Fix a potential buffer overflow in ruleset parsing.  This problem
837                 is not exploitable in the default sendmail configuration;
838                 only if non-standard rulesets recipient (2), final (4), or
839                 mailer-specific envelope recipients rulesets are used then
840                 a problem may occur.  Problem noted by Timo Sirainen.
841         Accept 0 (and 0/0) as valid input for set MaxMimeHeaderLength.
842                 Problem noted by Thomas Schulz.
843         Add several checks to avoid (theoretical) buffer over/underflows.
844         Properly count message size when performing 7->8 or 8->7 bit MIME
845                 conversions.  Problem noted by Werner Wiethege.
846         Properly compute message priority based on size of entire message,
847                 not just header.  Problem noted by Axel Holscher.
848         Reset SevenBitInput to its configured value between SMTP
849                 transactions for broken clients which do not properly
850                 announce 8 bit data.  Problem noted by Stefan Roehrich.
851         Set {addr_type} during queue runs when processing recipients.
852                 Based on patch from Arne Jansen.
853         Better error handling in case of (very unlikely) queue-id conflicts.
854         Perform better error recovery for address parsing, e.g., when
855                 encountering a comment that is too long.  Problem noted by
856                 Tanel Kokk, Union Bank of Estonia.
857         Add ':' to the allowed character list for bogus HELO/EHLO
858                 checking.  It is used for IPv6 domain literals.  Patch from
859                 Iwaizako Takahiro of FreeBit Co., Ltd.
860         Reset SASL connection context after a failed authentication attempt.
861                 Based on patch from Rob Siemborski of CMU.
862         Check Berkeley DB compile time version against run time version
863                 to make sure they match.
864         Do not attempt AAAA (IPv6) DNS lookups if IPv6 is not enabled
865                 in the kernel.
866         When a milter adds recipients and one of them causes an error,
867                 do not ignore the other recipients.  Problem noted by
868                 Bart Duchesne.
869         CONFIG: Use specified SMTP error code in mailertable entries which
870                 lack a DSN, i.e., "error:### Text".  Problem noted by
871                 Craig Hunt.
872         CONFIG: Call Local_trust_auth with the correct argument.  Patch
873                 from Jerome Borsboom.
874         CONTRIB: Better handling of temporary filenames for
875                 and to avoid file overwrites, etc.  Patches from
876                 Richard A. Nelson of Debian and Paul Szabo.
877         MAIL.LOCAL: Fix obscure race condition that could lead to an
878                 improper mailbox truncation if close() fails after the
879                 mailbox is fsync()'ed and a new message is delivered
880                 after the close() and before the truncate().
881         MAIL.LOCAL: If mail delivery fails, do not leave behind a
882                 stale lockfile (which is ignored after the lock timeout).
883                 Patch from Oleg Bulyzhin of Cronyx Plus LLC.
884         Portability:
885                 Port for AIX 5.2.  Thanks to Steve Hubert of University
886                         of Washington for providing access to a computer
887                         with AIX 5.2.
888                 setreuid(2) works on OpenBSD 3.3.  Patch from
889                         Todd C. Miller of Courtesan Consulting.
890                 Allow for custom definition of SMRSH_CMDDIR and SMRSH_PATH
891                         on all operating systems.  Patch from Robert Harker
892                         of Harker Systems.
893                 Use strerror(3) on Linux.  If this causes a problem on
894                         your Linux distribution, compile with
895                         -DHASSTRERROR=0 and tell about it.
896         Added Files:
897                 devtools/OS/AIX.5.2
899 8.12.9/8.12.9   2003/03/29
900         SECURITY: Fix a buffer overflow in address parsing due to
901                 a char to int conversion problem which is potentially
902                 remotely exploitable.  Problem found by Michal Zalewski.
903                 Note: an MTA that is not patched might be vulnerable to
904                 data that it receives from untrusted sources, which
905                 includes DNS.
906         To provide partial protection to internal, unpatched sendmail MTAs,
907                 8.12.9 changes by default (char)0xff to (char)0x7f in
908                 headers etc.  To turn off this conversion compile with
909                 -DALLOW_255 or use the command line option -d82.101.
910         To provide partial protection for internal, unpatched MTAs that may be
911                 performing 7->8 or 8->7 bit MIME conversions, the default
912                 for MaxMimeHeaderLength has been changed to 2048/1024.
913                 Note: this does have a performance impact, and it only
914                 protects against frontal attacks from the outside.
915                 To disable the checks and return to pre-8.12.9 defaults,
916                 set MaxMimeHeaderLength to 0/0.
917         Do not complain about -ba when submitting mail.  Problem noted
918                 by Derek Wueppelmann.
919         Fix compilation with Berkeley DB 1.85 on systems that do not
920                 have flock(2).  Problem noted by Andy Harper of Kings
921                 College London.
922         Properly initialize data structure for dns maps to avoid various
923                 errors, e.g., looping processes.  Problem noted by
924                 Maurice Makaay of InterNLnet B.V.
925         CONFIG: Prevent multiple application of rule to add smart host.
926                 Patch from Andrzej Filip.
927         CONFIG: Fix queue group declaration in MAILER(`usenet').
928         CONTRIB: buildvirtuser: New option -t builds the virtusertable
929                 text file instead of the database map.
930         Portability:
931                 Revert wrong change made in 8.12.7 and actually use the
932                         builtin getopt() version in sendmail on Linux.
933                         This can be overridden by using -DSM_CONF_GETOPT=0
934                         in which case the OS supplied version will be used.
936 8.12.8/8.12.8   2003/02/11
937         SECURITY: Fix a remote buffer overflow in header parsing by
938                 dropping sender and recipient header comments if the
939                 comments are too long.  Problem noted by Mark Dowd
940                 of ISS X-Force.
941         Fix a potential non-exploitable buffer overflow in parsing the
942                 .cf queue settings and potential buffer underflow in
943                 parsing ident responses.  Problem noted by Yichen Xie of
944                 Stanford University Compilation Group.
945         Fix ETRN #queuegroup command: actually start a queue run for
946                 the selected queue group.  Problem noted by Jos Vos.
947         If MaxMimeHeaderLength is set and a malformed MIME header is fixed,
948                 log the fixup as "Fixed MIME header" instead of "Truncated
949                 MIME header".  Problem noted by Ian J Hart.
950         CONFIG: Fix regression bug in proto.m4 that caused a bogus
951                 error message: "FEATURE() should be before MAILER()".
952         MAIL.LOCAL: Be more explicit in some error cases, i.e., whether
953                 a mailbox has more than one link or whether it is not
954                 a regular file.  Patch from John Beck of Sun Microsystems.
956 8.12.7/8.12.7   2002/12/29
957         Properly clean up macros to avoid persistence of session data
958                 across various connections.  This could cause session
959                 oriented restrictions, e.g., STARTTLS requirements,
960                 to erroneously allow a connection.  Problem noted
961                 by Tim Maletic of Priority Health.
962         Do not lookup MX records when sorting the MSP queue.  The MSP
963                 only needs to relay all mail to the MTA.  Problem found
964                 by Gary Mills of the University of Manitoba.
965         Do not restrict the length of connection information to 100
966                 characters in some logging statements.  Problem noted by
967                 Erik Parker.
968         When converting an enhanced status code to an exit status, use
969                 EX_CONFIG if the first digit is not 2, 4, or 5 or if *.1.5
970                 is used.
971         Reset macro $x when receiving another MAIL command.  Problem
972                 noted by Vlado Potisk of Wigro s.r.o.
973         Don't bother setting the permissions on the build area statistics
974                 file, the proper permissions will be put on the file at
975                 install time.  This fixes installation over NFS for some
976                 users.  Problem noted by Martin J. Dellwo of 3-Dimensional
977                 Pharmaceuticals, Inc.
978         Fix problem of decoding SASLv2 encrypted data.  Problem noted by
979                 Alex Deiter of Mobile TeleSystems, Komi Republic.
980         Log milter socket open errors at MilterLogLevel 1 or higher instead
981                 of 11 or higher.
982         Print early system errors to the console instead of silently
983                 exiting.  Problem noted by James Jong of IBM.
984         Do not process a queue group if Runners is set to 0, regardless
985                 of whether F=f or sendmail is run in verbose mode (-v).
986                 The use of -qGname will still force queue group "name"
987                 to be run even if Runners=0.
988         Change the level for logging the fact that a daemon is refusing
989                 connections due to high load from LOG_INFO to LOG_NOTICE.
990                 Patch from John Beck of Sun Microsystems.
991         Use location information for from NetInfo
992                 (/locations/sendmail/ if available.
993         Re-enable ForkEachJob which was lost in 8.12.0.  Problem noted by
994                 Neil Rickert of Northern Illinois University.
995         Make behavior of /canon in debug mode consistent with usage in
996                 rulesets.  Patch from Shigeno Kazutaka of IIJ.
997         Fix a potential memory leak in envelope splitting.  Problem noted
998                 by John Majikes of IBM.
999         Do not try to share an mailbox database LDAP connection across
1000                 different processes.  Problem noted by Randy Kunkee.
1001         Fix logging for undelivered recipients when the SMTP connection
1002                 times out during message collection.  Problem noted by Neil
1003                 Rickert of Northern Illinois University.
1004         Avoid problems with QueueSortOrder=random due to problems with
1005                 qsort() on Solaris (and maybe some other operating systems).
1006                 Problem noted by Stephan Schulz of Gruner+Jahr..
1007         If -f "" is specified, set the sender address to "<>".  Problem
1008                 noted by Matthias Andree.
1009         Fix formatting problem of footnotes for plain text output on some
1010                 versions of tmac.  Patch from Per Hedeland.
1011         Portability:
1012                 Berkeley DB 4.1 support (requires at least 4.1.25).
1013                 Some getopt(3) implementations in GNU/Linux are broken
1014                         and pass a NULL pointer to an option which requires
1015                         an argument, hence the builtin version of
1016                         sendmail is used instead.  This can be overridden
1017                         by using -DSM_CONF_GETOPT=0.  Problem noted by
1018                         Vlado Potisk of Wigro s.r.o.
1019                 Support for nph-1.2.0 from Mark D. Roth of the University
1020                         of Illinois at Urbana-Champaign.
1021                 Support for FreeBSD 5.0's MAC labeling from Robert Watson
1022                         of the TrustedBSD Project.
1023                 Support for reading the number of processors on an IRIX
1024                         system from Michel Bourget of SGI.
1025                 Support for UnixWare 7.1 based on input from Larry Rosenman.
1026                 Interix support from Nedelcho Stanev of Atlantic Sky
1027                         Corporation.
1028                 Update Mac OS X/Darwin portability from Wilfredo Sanchez.
1029         CONFIG: Enforce tls_client restrictions even if delay_checks
1030                 is used.  Problem noted by Malte Starostik.
1031         CONFIG: Deal with an empty hostname created via bogus
1032                 DNS entries to get around access restrictions.
1033                 Problem noted by Kai Schlichting.
1034         CONFIG: Use FEATURE(`msp', `[]') in by default
1035                 to avoid problems with hostname resolution for localhost
1036                 which on many systems does not resolve to (or
1037                 ::1 for IPv6).  If you do not use IPv4 but only IPv6 then
1038                 you need to change accordingly, see the comment
1039                 in the file itself.
1040         CONFIG: Set confDONT_INIT_GROUPS to True in to avoid
1041                 error messages from initgroups(3) on AIX 4.3 when sending
1042                 mail to non-existing users. Problem noted by Mark Roth of
1043                 the University of Illinois at Urbana-Champaign.
1044         CONFIG: Allow local_procmail to override local_lmtp settings.
1045         CONFIG: Always allow connections from or IPv6:::1 to
1046                 relay.
1047         CONTRIB: cidrexpand: Deal with the prefix tags that may be included
1048                 in access_db.
1049         CONTRIB: New version of contributed by Leo Bicknell.
1050         LIBMILTER: On Solaris libmilter may get into an endless loop if
1051                 an error in the communication from/to the MTA occurs.
1052                 Patch from Gurusamy Sarathy of Active State.
1053         LIBMILTER: Ignore EINTR from sigwait(3) which may happen on Tru64.
1054                 Patch from from Jose Marcio Martins da Cruz of Ecole
1055                 Nationale Superieure des Mines de Paris.
1056         MAIL.LOCAL: Fix a truncation race condition if the close() on
1057                 the mailbox fails.  Problem noted by Tomoko Fukuzawa of
1058                 Sun Microsystems.
1059         MAIL.LOCAL: Fix a potential file descriptor leak if mkstemp(3)
1060                 fails.  Patch from John Beck of Sun Microsystems.
1061         SMRSH: SECURITY: Only allow regular files or symbolic links to be
1062                 used for a command.  Problem noted by David Endler of
1063                 iDEFENSE, Inc.
1064         New Files:
1065                 devtools/OS/Interix
1066                 include/sm/bdb.h
1068 8.12.6/8.12.6   2002/08/26
1069         Do not add the FallbackMXhost (or its MX records) to the list
1070                 returned by the bestmx map when -z is used as option.
1071                 Otherwise sendmail may act as an open relay if FallbackMXhost
1072                 and FEATURE(`relay_based_on_MX') are used together.
1073                 Problem noted by Alexander Ignatyev.
1074         Properly split owner- mailing list messages when SuperSafe is set
1075                 to interactive.  Problem noted by Todd C. Miller of
1076                 Courtesan Consulting.
1077         Make sure that an envelope is queued in the selected queue group
1078                 even if some recipients are deleted or invalid.  Problem
1079                 found by Chris Adams of HiWAAY Informations Services.
1080         Do not send a bounce message if a message is completely collected
1081                 from the SMTP client.  Problem noted by Kari Hurtta of the
1082                 Finnish Meteorological Institute.
1083         Provide an 'install-submit-st' target for sendmail/Makefile to
1084                 install the MSP statistics file using the file named in the
1085                 confMSP_STFILE devtools variable.  Requested by Jeff
1086                 Earickson of Colby College.
1087         Queue up mail with a temporary error if setusercontext() fails
1088                 during a delivery attempt.  Patch from Todd C. Miller of
1089                 Courtesan Consulting.
1090         Fix handling of base64 encoded client authentication data for
1091                 SMTP AUTH.  Patch from Elena Slobodnik of life medien GmbH.
1092         Set the OpenLDAP option LDAP_OPT_RESTART so the client libraries
1093                 restart interrupted system calls.  Problem noted by Luiz
1094                 Henrique Duma of BSIOne.
1095         Prevent a segmentation fault if a program passed a NULL envp using
1096                 execve().
1097         Document a problem with the counting of queue runners that may
1098                 cause delays if MaxQueueChildren is set too low. Problem
1099                 noted by Ian Duplisse of Cable Television Laboratories, Inc.
1100         If discarding a message based on a recipient, don't try to look up
1101                 the recipient in the mailbox database if F=w is set.  This
1102                 allows users to discard bogus recipients when dealing with
1103                 spammers without tipping them off.  Problem noted by Neil
1104                 Rickert of Northern Illinois University.
1105         If applying a header check to a header with unstructured data,
1106                 e.g., Subject:, then do not run syntax checks that are
1107                 supposed for addresses on the header content.
1108         Count messages rejected/discarded via the check_data ruleset.
1109         Portability:
1110                 Fix compilation on systems which do not allow simple
1111                         copying of the variable argument va_list.  Based on
1112                         fix from Scott Walters.
1113                 Fix NSD map open bug.  From Michel Bourget of SGI.
1114                 Add some additional IRIX shells to the default shell
1115                         list.  From Michel Bourget of SGI.
1116                 Fix compilation issues on Mac OS X 10.2 (Darwin 6.0).
1117                         NETISO support has been dropped.
1118         CONFIG: There was a seemingly minor change in 8.12.4 with respect
1119                 to handling entries of IP nets/addresses with RHS REJECT.
1120                 These would be rejected in check_rcpt instead of only
1121                 being activated in check_relay.  This change has been made to
1122                 avoid potential bogus temporary rejection of relay attempts
1123                 "450 4.7.1 Relaying temporarily denied. Cannot resolve PTR
1124                 record for ..." if delay_checks is enabled.  However, this
1125                 modification causes a change of behavior if an IP net/address
1126                 is listed in the access map with REJECT and a host/domain
1127                 name is listed with OK or RELAY, hence it has been reversed
1128                 such that the behavior of 8.12.3 is restored.  The original
1129                 change was made on request of Neil Rickert of Northern
1130                 Illinois University, the side effect has been found by
1131                 Stefaan Van Hoornick.
1132         CONFIG: Make sure delay_checks works even for sender addresses
1133                 using the local hostname ($j) or domains in class {P}.
1134                 Based on patch from Neil Rickert of Northern Illinois
1135                 University.
1136         CONFIG: Fix temporary error handling for LDAP Routing lookups.
1137                 Fix from Andrzej Filip.
1138         CONTRIB: New version of script and external man page
1139                 (etrn.0) from John Beck of Sun Microsystems.
1140         LIBMILTER: Protect a free(3) operation from being called with a
1141                 NULL pointer.  Problem noted by Andrey J. Melnikoff.
1142         LIBMILTER: Protect against more interrupted select() calls.  Based
1143                 on patch from Jose Marcio Martins da Cruz of Ecole Nationale
1144                 Superieure des Mines de Paris.
1145         New Files:
1146                 contrib/etrn.0
1148 8.12.5/8.12.5   2002/06/25
1149         SECURITY: The DNS map can cause a buffer overflow if the user
1150                 specifies a dns map using TXT records in the configuration
1151                 file and a rogue DNS server is queried.  None of the
1152                 sendmail supplied configuration files use this option hence
1153                 they are not vulnerable.  Problem noted independently by
1154                 Joost Pol of PINE Internet and Anton Rang of Sun Microsystems.
1155         Unprintable characters in responses from DNS servers for the DNS
1156                 map type are changed to 'X' to avoid potential problems
1157                 with rogue DNS servers.
1158         Require a suboption when setting the Milter option.  Problem noted
1159                 by Bryan Costales.
1160         Do not silently overwrite command line settings for
1161                 DirectSubmissionModifiers.  Problem noted by Bryan
1162                 Costales.
1163         Prevent a segmentation fault when clearing the event list by
1164                 turning off alarms before checking if event list is
1165                 empty.  Problem noted by Allan E Johannesen of Worcester
1166                 Polytechnic Institute.
1167         Close a potential race condition in transitioning a memory buffered
1168                 file onto disk.  From Janani Devarajan of Sun Microsystems.
1169         Portability:
1170                 Include paths.h on Linux systems running glibc 2.0 or later
1171                         to get the definition for _PATH_SENDMAIL, used by
1172                         rmail and vacation.  Problem noted by Kevin
1173                         A. McGrail of Peregrine Hardware.
1174                 NOTE: Linux appears to have broken flock() again.  Unless
1175                         the bug is fixed before sendmail 8.13 is shipped,
1176                         8.13 will change the default locking method to
1177                         fcntl() for Linux kernel 2.4 and later.  You may
1178                         want to do this in 8.12 by compiling with
1179                         -DHASFLOCK=0.  Be sure to update other sendmail
1180                         related programs to match locking techniques.
1182 8.12.4/8.12.4   2002/06/03
1183         SECURITY: Inherent limitations in the UNIX file locking model
1184                 can leave systems open to a local denial of service
1185                 attack.  Be sure to read the "FILE AND MAP PERMISSIONS"
1186                 section of the top level README for more information.
1187                 Problem noted by lumpy.
1188         Use TempFileMode (defaults to 0600) for the permissions of PidFile
1189                 instead of 0644.
1190         Change the default file permissions for new alias database files
1191                 from 0644 to 0640.  This can be overridden at compile time
1192                 by setting the DBMMODE macro.
1193         Fix a potential core dump problem if the environment variable
1194                 NAME is set.  Problem noted by Beth A. Chaney of
1195                 Purdue University.
1196         Expand macros before passing them to libmilter.  Problem noted
1197                 by Jose Marcio Martins da Cruz of Ecole Nationale
1198                 Superieure des Mines de Paris.
1199         Rewind the df (message body) before truncating it when libmilter
1200                 replaces the body of a message.  Problem noted by Gisle Aas
1201                 of Active State.
1202         Change SMTP reply code for AUTH failure from 500 to 535 and the
1203                 initial zero-length response to "=" per RFC 2554.  Patches
1204                 from Kenneth Murchison of Oceana Matrix Ltd.
1205         Do not try to fix broken message/rfc822 MIME attachments by
1206                 inserting a MIME-Version: header when MaxMimeHeaderLength
1207                 is set and no 8 to 7 bit conversion is needed.  Based on
1208                 patch from Rehor Petr of ICZ (Czech Republic).
1209         Do not log "did not issue MAIL/EXPN/VRFY/ETRN" if the connection
1210                 is rejected anyway.  Noted by Chris Loelke.
1211         Mention the submission mail queue in the mailq man page.  Requested
1212                 by Bill Fenner of AT&T.
1213         Set ${msg_size} macro when reading a message from the command line
1214                 or the queue.
1215         Detach from shared memory before dropping privileges back to
1216                 user who started sendmail.
1217         If AllowBogusHELO is set to false (default) then also complain if
1218                 the argument to HELO/EHLO contains white space.  Suggested
1219                 by Seva Gluschenko of Cronyx Plus.
1220         Allow symbolicly linked forward files in writable directory paths
1221                 if both ForwardFileInUnsafeDirPath and
1222                 LinkedForwardFileInWritableDir DontBlameSendmail options
1223                 are set.  Problem noted by Werner Spirk of
1224                 Leibniz-Rechenzentrum Munich.
1225         Portability:
1226                 Operating systems that lack the ftruncate() call will not
1227                         be able to use Milter's body replacement feature.
1228                         This only affects Altos, Maxion, and MPE/iX.
1229                 Digital UNIX 5.0 has changed flock() semantics to be
1230                         non-compliant.  Problem noted by Martin Mokrejs of
1231                         Charles University in Prague.
1232                 The sparc64 port of FreeBSD 5.0 now supports shared
1233                         memory.
1234         CONFIG: FEATURE(`preserve_luser_host') needs the macro map.
1235                 Problem noted by Andrzej Filip.
1236         CONFIG: Using 'local:' as a mailertable value with
1237                 FEATURE(`preserve_luser_host') and LUSER_RELAY caused mail
1238                 to be misaddressed.  Problem noted by Andrzej Filip.
1239         CONFIG: Provide a workaround for DNS based rejection lists that
1240                 fail for AAAA queries.  Problem noted by Chris Boyd.
1241         CONFIG: Accept the machine's hostname as resolvable when checking
1242                 the sender address.  This allows locally submitted mail to
1243                 be accepted if the machine isn't connected to a nameserver
1244                 and doesn't have an /etc/hosts entry for itself.  Problem
1245                 noted by Robert Watson of the TrustedBSD Project.
1246         CONFIG: Use deferred expansion for checking the ${deliveryMode}
1247                 macro in case the SMTP VERB command is used.  Problem
1248                 noted by Bryan Costales.
1249         CONFIG: Avoid a duplicate '@domain' virtusertable lookup if no
1250                 matches are found.  Fix from Andrzej Filip.
1251         CONFIG: Fix wording in default dnsbl rejection message.  Suggested
1252                 by Lou Katz of Metron Computerware, Ltd.
1253         CONFIG: Add mailer cyrusv2 for Cyrus V2.  Contributed by
1254                 Kenneth Murchison of Oceana Matrix Ltd.
1255         CONTRIB: Fix wording in default dnsblaccess rejection message to
1256                 match dnsbl change.
1257         DEVTOOLS: Add new option for access mode of statistics file,
1258                 confSTMODE, which specifies the permissions when initially
1259                 installing the sendmail statistics file.
1260         LIBMILTER: Mark the listening socket as close-on-exec in case
1261                 a user's filter starts other applications.
1262         LIBSM: Allow the MBDB initialize, lookup, and/or terminate
1263                 functions in SmMbdbTypes to be set to NULL.
1264         MAKEMAP: Change the default file permissions for new databases from
1265                 0644 to 0640.  This can be overridden at compile time
1266                 by setting the DBMMODE macro.
1267         SMRSH: Fix man page bug: replace SMRSH_CMDBIN with SMRSH_CMDDIR.
1268                 Problem noted by Dave Alden of Ohio State University.
1269         VACATION: When listing the vacation database (-l), don't show
1270                 bogus timestamps for excluded (-x) addresses.  Problem
1271                 noted by Bryan Costales.
1272         New Files:
1273                 cf/mailer/cyrusv2.m4
1275 8.12.3/8.12.3   2002/04/05
1276         NOTICE: In general queue files should not be moved if queue groups
1277                 are used.  In previous versions this could cause mail
1278                 not to be delivered if a queue file is repeatedly moved
1279                 by an external process whenever sendmail moved it back
1280                 into the right place.  Some precautions have been taken
1281                 to avoid moving queue files if not really necessary.
1282                 sendmail may use links to refer to queue files and it
1283                 may store the path of data files in queue files.  Hence
1284                 queue files should not be moved unless those internals
1285                 are understood and the integrity of the files is not
1286                 compromised.  Problem noted by Anne Bennett of Concordia
1287                 University.
1288         If an error mail is created, and the mail is split across different
1289                 queue directories, and SuperSafe is off, then write the mail
1290                 to disk before splitting it, otherwise an assertion is
1291                 triggered.  Problem tracked down by Henning Schmiedehausen
1292                 of INTERMETA.
1293         Fix possible race condition that could cause sendmail to forget
1294                 running queues.  Problem noted by Jeff Wasilko of
1295         Handle bogus qf files better without triggering assertions.
1296                 Problem noted by Guy Feltin.
1297         Protect against interrupted select() call when enforcing Milter
1298                 read and write timeouts.  Patch from Gurusamy Sarathy of
1299                 ActiveState.
1300         Matching queue IDs with -qI should be case sensitive.  Problem
1301                 noted by Anne Bennett of Concordia University.
1302         If privileges have been dropped, don't try to change group ID to
1303                 the RunAsUser group.  Problem noted by Neil Rickert of
1304                 Northern Illinois University.
1305         Fix SafeFileEnvironment path munging when the specified path
1306                 contains a trailing slash.  Based on patch from Dirk Meyer
1307                 of Dinoex.
1308         Do not limit sendmail command line length to SM_ARG_MAX (usually
1309                 4096).  Problem noted by Allan E Johannesen of Worcester
1310                 Polytechnic Institute.
1311         Clear full name of sender for each new envelope to avoid bogus data
1312                 if several mails are sent in one session and some of them
1313                 do not have a From: header.  Problem noted by Bas Haakman.
1314         Change timeout check such that cached information about a connection
1315                 will be immediately invalid if ConnectionCacheTimeout is zero.
1316                 Based on patch from David Burns of Portland State University.
1317         Properly count message size for mailstats during mail collection.
1318                 Problem noted by Werner Wiethege.
1319         Log complete response from LMTP delivery agent on failure.  Based on
1320                 patch from by Motonori Nakamura of Kyoto University.
1321         Provide workaround for getopt() implementations that do not catch
1322                 missing arguments.
1323         Fix the message size calculation if the message body is replaced by
1324                 a milter filter and buffered file I/O is being used.
1325                 Problem noted by Sergey Akhapkin of Dr.Web.
1326         Do not honor SIGUSR1 requests if running with extra privileges.
1327                 Problem noted by Werner Wiethege.
1328         Prevent a file descriptor leak on mail delivery if the initial
1329                 connect fails and DialDelay is set.  Patch from Servaas
1330                 Vandenberghe of Katholieke Universiteit Leuven.
1331         Properly deal with a case where sendmail is called by root running
1332                 a set-user-ID (non-root) program.  Problem noted by Jon
1333                 Lusky of ISS Atlanta.
1334         Avoid leaving behind stray transcript (xf) files if multiple queue
1335                 directories are used and mail is sent to a mailing list
1336                 which has an owner- alias.  Problem noted by Anne Bennett
1337                 of Concordia University.
1338         Fix class map parsing code if optional key is specified.  Problem
1339                 found by Mario Nigrovic.
1340         The SMTP daemon no longer tries to fix up improperly dot-stuffed
1341                 incoming messages.  A leading dot is always stripped by the
1342                 SMTP receiver regardless of whether or not it is followed by
1343                 another dot.  Problem noted by Jordan Ritter of
1344         Fix corruption when doing automatic MIME 7-bit quoted-printable or
1345                 base64 encoding to 8-bit text.  Problem noted by Mark
1346                 Elvers.
1347         Correct the statistics gathered for total number of connections.
1348                 Instead of being the exact same number as the total number
1349                 of messages (T line in mailstats) it now represents the
1350                 total number of TCP connections.
1351         Be more explicit about syntax errors in addresses, especially
1352                 non-ASCII characters, and properly create DSNs if necessary.
1353                 Problem noted by Leena Heino of the University of Tampere.
1354         Prevent small timeouts from being lost on slow machines if itimers
1355                 are used.  Problem noted by Suresh Ramasubramanian.
1356         Prevent a race condition on child cleanup for delivery to files.
1357                 Problem noted by Fletcher Mattox of the University of
1358                 Texas.
1359         Change the SMTP error code for temporary map failures from 421
1360                 to 451.
1361         Do not assume that realloc(NULL, size) works on all OS (this was
1362                 only done in one place: queue group creation).  Based on
1363                 patch by Bryan Costales.
1364         Initialize Timeout.iconnect in the code to prevent randomly short
1365                 timeouts.  Problem noted by Bradley Watts of AT&T Canada.
1366         Do not try to send a second SMTP QUIT command if the remote
1367                 responds to a MAIL command with a 421 reply or on I/O
1368                 errors.  By doing so, the host was marked as having a
1369                 temporary problem and other mail destined for that host was
1370                 queued for the next queue run.  Problem noted by Fletcher
1371                 Mattox of the University of Texas, Allan E Johannesen of
1372                 Worcester Polytechnic Institute, Larry Greenfield of CMU,
1373                 and Neil Rickert of Northern Illinois University.
1374         Ignore error replies from the SMTP QUIT command (including servers
1375                 which drop the connection instead of responding to the
1376                 command).
1377         Portability:
1378                 Check LDAP_API_VERSION to determine if ldap_memfree() is
1379                         available.
1380                 Define HPUX10 when building on HP-UX 10.X.  That platform
1381                         now gets the proper _PATH_SENDMAIL and SMRSH_CMDDIR
1382                         settings.  Patch from Elias Halldor Agustsson of
1383                         Skyrr.
1384                 Fix dependency building on Mac OS X and Darwin.  Problem
1385                         noted by John Beck.
1386                 Preliminary support for the sparc64 port of FreeBSD 5.0.
1387                 Add /sbin/sh as an acceptable user shell on HP-UX.  From
1388                         Rajesh Somasund of Hewlett-Packard.
1389         CONFIG: Add FEATURE(`authinfo') to allow a separate database for
1390                 SMTP AUTH information.  This feature was actually added in
1391                 8.12.0 but a release note was not included.
1392         CONFIG: Do not bounce mail if FEATURE(`ldap_routing')'s bounce
1393                 parameter is set and the LDAP lookup returns a temporary
1394                 error.
1395         CONFIG: Honor FEATURE(`relay_hosts_only') when using
1396                 FEATURE(`relay_mail_from', `domain').  Problem noted by
1397                 Krzysztof Oledzki.
1398         CONFIG: FEATURE(`msp') now disables any type of alias
1399                 initialization as aliases are not needed for the MSP.
1400         CONFIG: Allow users to override RELAY_MAILER_ARGS when FEATURE(`msp')
1401                 is in use.  Patch from Andrzej Filip.
1402         CONFIG: FEATURE(`msp') uses `[localhost]' as default instead of
1403                 `localhost' and turns on MX lookups for the SMTP mailers.
1404                 This will only have an effect if a parameter is specified,
1405                 i.e., an MX lookup will be performed on the hostname unless
1406                 it is embedded in square brackets.  Problem noted by
1407                 Theo Van Dinter of Collective Technologies.
1408         CONFIG: Set confTIME_ZONE to USE_TZ in (TimeZoneSpec= in
1409        to use $TZ for time stamps.  This is a compromise
1410                 to allow for the proper time zone on systems where the
1411                 default results in misleading time stamps. That is, syslog
1412                 time stamps and Date headers on submitted mail will use the
1413                 user's $TZ setting.  Problem noted by Mark Roth of the
1414                 University of Illinois at Urbana-Champaign, solution proposed
1415                 by Neil Rickert of Northern Illinois University.
1416         CONFIG: Mac OS X (Darwin) ships with mail.local as non-set-user-ID
1417                 binary.  Adjust local mailer flags accordingly.  Problem
1418                 noted by John Beck.
1419         CONTRIB: Add a warning to to not move queue files around
1420                 if queue groups are used.
1421         CONTRIB: buildvirtuser: Add -f option to force rebuild.
1422         CONTRIB: Add -f option to specify control socket.
1423         CONTRIB: Add support for 'memdump' command.
1424                 Suggested by Bryan Costales.
1425         DEVTOOLS: Add dependency generation for test programs.
1426         LIBMILTER: Remove conversion of port number for the socket
1427                 structure that is passed to xxfi_connect().  Notice:
1428                 this fix requires that sendmail and libmilter both have
1429                 this change; mixing versions may lead to wrong port
1430                 values depending on the endianness of the involved systems.
1431                 Problem noted by Gisle Aas of ActiveState.
1432         LIBMILTER: If smfi_setreply() sets a custom reply code of '4XX' but
1433                 SMFI_REJECT is returned, ignore the custom reply.  Do the
1434                 same if '5XX' is used and SMFI_TEMPFAIL is returned.
1435         LIBMILTER: Install include files in ${INCLUDEDIR}/libmilter/ as
1436                 required by mfapi.h.  Problem noted by Jose Marcio Martins
1437                 da Cruz of Ecole Nationale Superieure des Mines de Paris.
1438         LIBSM: Add SM_CONF_LDAP_MEMFREE as a configuration define.  Set
1439                 this to 1 if your LDAP client libraries include
1440                 ldap_memfree().
1441         LIBSMDB: Avoid a file creation race condition for Berkeley DB 1.X
1442                 and NDBM on systems with the O_EXLOCK open(2) flag.
1443         SMRSH: Fix compilation problem on some operating systems.  Problem
1444                 noted by Christian Krackowizer of schuler technodat GmbH.
1445         VACATION: Allow root to operate on user vacation databases.  Based
1446                 on patch from Greg Couch of the University of California,
1447                 San Francisco.
1448         VACATION: Don't ignore -C option.  Based on patch by Bryan Costales.
1449         VACATION: Clarify option usage in the man page.  Problem noted by
1450                 Joe Barbish.
1451         New Files:
1452                 libmilter/docs/smfi_setbacklog.html
1454 8.12.2/8.12.2   2002/01/13
1455         Don't complain too much if stdin, stdout, or stderr are missing
1456                 at startup, only log an error message.
1457         Fix potential problem if an unknown operation mode (character
1458                 following -b) has been specified.
1459         Prevent purgestat from looping even if someone changes the
1460                 permissions or owner of hoststatus files.  Problem noted
1461                 by Kari Hurtta of the Finnish Meteorological Institute.
1462         Properly record dropped connections in persistent host status.
1463                 Problem noted by Ulrich Windl of the Universitat
1464                 Regensburg.
1465         Remove newlines from recipients read via sendmail -t to prevent
1466                 SMTP protocol errors when sending the RCPT command.
1467                 Problem noted by William D. Colburn of the New Mexico
1468                 Institute of Mining and Technology.
1469         Only log milter body replacements once instead of for each body
1470                 chunk sent by a filter.  Problem noted by Kari Hurtta of
1471                 the Finnish Meteorological Institute.
1472         In 8.12.0 and 8.12.1, the headers were mistakenly not included in
1473                 the message size calculation.  Problem noted by Kari Hurtta
1474                 of the Finnish Meteorological Institute.
1475         Since 8.12 no longer forks at the SMTP MAIL command, the daemon
1476                 needs to collect children status to avoid zombie processes.
1477                 Problem noted by Chris Adams of HiWAAY Informations Services.
1478         Shut down "nullserver" and ETRN-only connections after 25 bad
1479                 commands are issued.  This makes it consistent with normal
1480                 SMTP connections.
1481         Avoid duplicate logging of milter rejections.  Problem noted by
1482                 William D. Colburn of the New Mexico Institute of Mining
1483                 and Technology.
1484         Error and delay DSNs were being sent to postmaster instead of the
1485                 message sender if the sender had used a deprecated RFC822
1486                 source route.  Problem noted by Kari Hurtta of the Finnish
1487                 Meteorological Institute.
1488         Fix FallbackMXhost behavior for temporary errors during address
1489                 parsing.  Problem noted by Jorg Bielak from Coastal Web
1490                 Online.
1491         For systems on which stat(2) does not return a value for st_blksize
1492                 that is the "optimal blocksize for I/O" three new compile
1493                 time flags are available: SM_IO_MAX_BUF_FILE, SM_IO_MIN_BUF,
1494                 and SM_IO_MAX_BUF, which define an upper limit for
1495                 regular files, and a lower and upper limit for other file
1496                 types, respectively.
1497         Fix a potential deadlock if two events are supposed to occur at
1498                 exactly the same time.  Problem noted by Valdis Kletnieks
1499                 of Virginia Tech.
1500         Perform envelope splitting for aliases listed directly in the
1501                 alias file, not just for include/.forward files.
1502                 Problem noted by John Beck of Sun Microsystems.
1503         Allow selection of queue group for mailq using -qGgroup.
1504                 Based on patch by John Beck of Sun Microsystems.
1505         Make sure cached LDAP connections used my multiple maps in the same
1506                 process are closed.  Patch from Taso N. Devetzis.
1507         If running as root, allow reading of class files in protected
1508                 directories.  Patch from Alexander Talos of the University
1509                 of Vienna.
1510         Correct a few LDAP related memory leaks.  Patch from David Powell
1511                 of Sun Microsystems.
1512         Allow specification of an empty realm via the authinfo ruleset.
1513                 This is necessary to interoperate as an SMTP AUTH client
1514                 with servers that do not support realms when using
1515                 CRAM-MD5.  Problem noted by Bjoern Voigt of TU Berlin.
1516         Avoid a potential information leak if AUTH PLAIN is used and the
1517                 server gets stuck while processing that command.  Problem
1518                 noted by Chris Adams from HiWAAY Informations Services.
1519         In addition to printing errors when parsing recipients during
1520                 command line invocations log them to make it simpler
1521                 to understand possible DSNs to postmaster.
1522         Do not use FallbackMXhost on mailers which have the F=0 flag set.
1523         Allow local mailers (F=l) to specify a host for TCP connections
1524                 instead of forcing localhost.
1525         Obey ${DESTDIR} for installation of the client mail queue and
1526         Patch from Peter 'Luna' Runestig.
1527         Re-enable support for -M option which was broken in 8.12.1.  Problem
1528                 noted by Neil Rickert of Northern Illinois University.
1529         If a remote server violates the SMTP standard by unexpectedly
1530                 dropping the connection during an SMTP transaction, stop
1531                 sending commands.  This prevents bogus "Bad file number"
1532                 recipient status.  Problem noted by Allan E Johannesen of
1533                 Worcester Polytechnic Institute.
1534         Do not use a size estimate of 100 for postmaster bounces, it's
1535                 almost always too small; do not guess the size at all.
1536         New VENDOR_DEC for Compaq/DEC.  Requested by James Seagraves of
1537                 Compaq Computer Corp.
1538         Fix DaemonPortOptions IPv6 address parsing such that ::1 works
1539                 properly.  Problem noted by Valdis Kletnieks of Virginia
1540                 Tech.
1541         Portability:
1542                 Fix IPv6 network interface probing on HP-UX 11.X.  Based on
1543                         patch provided by HP.
1544                 Mac OS X (aka Darwin) has a broken setreuid() call, but a
1545                         working seteuid() call.  From Daniel J. Luke.
1546                 Use proper type for a 32-bit integer on SINIX.  From Ganu
1547                         Sachin of Siemens.
1548                 Set SM_IO_MIN_BUF (4K) and SM_IO_MAX_BUF (8K) for HP-UX.
1549                 Reduce optimization from +O3 to +O2 on HP-UX 11.  This
1550                         fixes a problem that caused additional bogus
1551                         characters to be written to the qf file.  Problem
1552                         noted by Tapani Tarvainen.
1553                 Set LDA_USE_LOCKF by default for UnixWare.  Problem noted
1554                         by Boyd Lynn Gerber.
1555                 Add support for HP MPE/iX.  See sendmail/README for port
1556                         information.  From Mark Bixby of Hewlett-Packard.
1557                 New portability defines HASNICE, HASRRESVPORT, USE_ENVIRON,
1558                         USE_DOUBLE_FORK, and NEEDLINK.  See sendmail/README
1559                         for more information.  From Mark Bixby of
1560                         Hewlett-Packard.
1561                 If an OS doesn't have a method of finding free disk space
1562                         (SFS_NONE), lie and say there is plenty of space.
1563                         From Mark Bixby of Hewlett-Packard.
1564                 Add support for AIX 5.1.  From Valdis Kletnieks of
1565                         Virginia Tech.
1566                 Fix man page location for NeXTSTEP.  From Hisanori Gogota
1567                         of the NTT/InterCommunication Center.
1568                 Do not assume that strerror() always returns a string.
1569                         Problem noted by John Beck of Sun Microsystems.
1570         CONFIG: Add OSTYPE(freebsd5) for FreeBSD 5.X, which has removed
1571                 UUCP from the base operating system.  From Mark Murray of
1572                 FreeBSD Services, Ltd.
1573         CONFIG: Add OSTYPE(mpeix) and a generic .mc file for HP MPE/iX
1574                 systems.  From Mark Bixby of Hewlett-Packard.
1575         CONFIG: Add support for selecting a queue group for all mailers.
1576                 Based on proposal by Stephen L. Ulmer of the University of
1577                 Florida.
1578         CONFIG: Fix error reporting for compat_check.m4.  Problem noted by
1579                 Altin Waldmann.
1580         CONFIG: Do not override user selections for confRUN_AS_USER and
1581                 confTRUSTED_USER in FEATURE(msp).  From Mark Bixby of
1582                 Hewlett-Packard.
1583         LIBMILTER: Fix bug that prevented the removal of a socket after
1584                 libmilter terminated.  Problem reported by Andrey V. Pevnev
1585                 of MSFU.
1586         LIBMILTER: Fix configuration error that required libsm for linking.
1587                 Problem noted by Kari Hurtta of the Finnish Meteorological
1588                 Institute.
1589         LIBMILTER: Portability fix for OpenUNIX.  Patch from Larry Rosenman.
1590         LIBMILTER: Fix a theoretical memory leak and a possible attempt
1591                 to free memory twice.
1592         LIBSM: Fix a potential segmentation violation in the I/O library.
1593                 Problem found and analyzed by John Beck and Tim Haley
1594                 of Sun Microsystems.
1595         LIBSM: Do not clear the LDAP configuration information when
1596                 terminating the mailbox database connection in the LDAP
1597                 example code.  Problem noted by Nikos Voutsinas of the
1598                 University of Athens.
1599         New Files:
1600                 cf/cf/
1601                 cf/cf/
1602                 cf/ostype/freebsd5.m4
1603                 cf/ostype/mpeix.m4
1604                 devtools/OS/AIX.5.1
1605                 devtools/OS/MPE-iX
1606                 include/sm/os/sm_os_mpeix.h
1607                 libsm/mpeix.c
1609 8.12.1/8.12.1   2001/10/01
1610         SECURITY: Check whether dropping group privileges actually succeeded
1611                 to avoid possible compromises of the mail system by
1612                 supplying bogus data.  Add configuration options for
1613                 different set*gid() calls to reset saved gid.  Problem
1614                 found by Michal Zalewski.
1615         PRIVACY: Prevent information leakage when sendmail has extra
1616                 privileges by disabling debugging (command line -d flag)
1617                 during queue runs and disabling ETRN when sendmail -bs is
1618                 used.  Suggested by Michal Zalewski.
1619         Avoid memory corruption problems resulting from bogus .cf files.
1620                 Problem found by Michal Zalewski.
1621         Set the ${server_addr} macro to name of mailer when doing LMTP
1622                 delivery.  LMTP systems may offer SMTP Authentication or
1623                 STARTTLS causing sendmail to use this macro in rulesets.
1624         If debugging is turned on (-d0.10) print not just the default
1625                 values for configuration file and pid file but also the
1626                 selected values.  Problem noted by Brad Chapman.
1627         Continue dealing with broken nameservers by ignoring SERVFAIL
1628                 errors returned on T_AAAA (IPv6) lookups at delivery time
1629                 if ResolverOptions=WorkAroundBrokenAAAA is set.  Previously
1630                 this only applied to hostname canonification.  Problem
1631                 noted by Bill Fenner of AT&T Research.
1632         Ignore comments in NIS host records when trying to find the
1633                 canonical name for a host.
1634         When sendmail has extra privileges, limit mail submission command
1635                 line flags (i.e., -G, -h, -F, etc.)  to mail submission
1636                 operating modes (i.e., -bm, -bs, -bv, etc.).  Idea based on
1637                 suggestion from Michal Zalewski.
1638         Portability:
1639                 AIX: Use `oslevel` if available to determine OS version.
1640                         `uname` does not given complete information.
1641                         Problem noted by Keith Neufeld of the Cessna
1642                         Aircraft Company.
1643                 OpenUNIX: Use lockf() for LDA delivery (affects mail.local).
1644                         Problem noticed by Boyd Lynn Gerber of ZENEX.
1645                 Avoid compiler warnings by not using pointers to pass
1646                         integers.  Problem noted by Todd C. Miller of
1647                         Courtesan Consulting.
1648         CONFIG: Add restrictqrun to PrivacyOptions for the MSP to minimize
1649                 problems with potential misconfigurations.
1650         CONFIG: Fix comment showing default value of MaxHopCount.  Problem
1651                 noted by Greg Robinson of the Defence Science and
1652                 Technology Organisation of Australia.
1653         CONFIG: dnsbl: If an argument specifies an error message in case
1654                 of temporary lookup failures for DNS based blacklists
1655                 then use it.
1656         LIBMILTER: Install mfdef.h, required by mfapi.h.  Problem noted by
1657                 Richard A. Nelson of Debian.
1658         LIBMILTER: Add __P definition for OS that lack it.  Problem noted
1659                 by Chris Adams from HiWAAY Informations Services.
1660         LIBSMDB: Fix a lock race condition that affects makemap, praliases,
1661                 and vacation.
1662         MAKEMAP: Avoid going beyond the end of an input line if it does
1663                 not contain a value for a key.  Based on patch from
1664                 Mark Bixby from Hewlett-Packard.
1665         New Files:
1666                 test/Build
1667                 test/Makefile
1668                 test/Makefile.m4
1669                 test/README
1670                 test/t_dropgid.c
1671                 test/t_setgid.c
1672         Deleted Files:
1673                 include/sm/stdio.h
1674                 include/sm/sysstat.h
1676 8.12.0/8.12.0   2001/09/08
1677         *NOTICE*: The default installation of sendmail does not use
1678                 set-user-ID root anymore.  You need to create a new user and
1679                 a new group before installing sendmail (both called smmsp by
1680                 default).  The installation process tries to install
1681                 /etc/mail/ and creates /var/spool/clientmqueue by
1682                 default.  Please see sendmail/SECURITY for details.
1683         SECURITY: Check for group and world writable forward and :include:
1684                 files.  These checks can be turned off if absolutely
1685                 necessary using the DontBlameSendmail option and the new
1686                 flags:
1687                         GroupWritableForwardFile
1688                         WorldWritableForwardFile
1689                         GroupWritableIncludeFile
1690                         WorldWritableIncludeFile
1691                 Problem noted by Slawek Zak of Politechnika Warszawska,
1692         SECURITY: Drop privileges when using address test mode.  Suggested
1693                 by Michal Zalewski of the "Internet for Schools" project
1694                 (IdS).
1695         Fixed problem of a global variable being used for a timeout jump
1696                 point where the variable could become overused for more than
1697                 one timeout concurrently.  This erroneous behavior resulted in
1698                 a corrupted stack causing a core dump.  The timeout is now
1699                 handled via libsm.  Problem noted by Michael Shapiro,
1700                 John Beck, and Carl Smith of Sun Microsystems.
1701         If sendmail is set-group-ID then that group ID is used for permission
1702                 checks (group ID of RunAsUser).  This allows use of a
1703                 set-group-ID sendmail binary for initial message submission
1704                 and no set-user-ID root sendmail is needed.  For details
1705                 see sendmail/SECURITY.
1706         Log a warning if a non-trusted user changes the syslog label.
1707                 Based on notice from Bryan Costales of SL3D, Inc.
1708         If sendmail is called for initial delivery, try to use
1709                 with a fallback of as configuration file.  See
1710                 sendmail/SECURITY.
1711         New configuration file option UseMSP to allow group writable queue
1712                 files if the group is the same as that of a set-group-ID
1713                 sendmail binary.  See sendmail/SECURITY.
1714         The .cf file is chosen based on the operation mode. For -bm (default),
1715                 -bs, and -t it is if it exists for all others it
1716                 is (to be backward compatible).  This selection
1717                 can be changed by the new option -Ac or -Am (alternative .cf
1718                 file: client or mta).  See sendmail/SECURITY.
1719         The SMTP server no longer forks on each MAIL command.  The ONEX
1720                 command has been removed.
1721         Implement SMTP PIPELINING per RFC 2920.  It can be turned off
1722                 at compile time or per host (ruleset).
1723         New option MailboxDatabase specifies the type of mailbox database
1724                 used to look up local mail recipients; the default value
1725                 is "pw", which means to use getpwnam().  New mailbox database
1726                 types can be added by adding custom code to libsm/mbdb.c.
1727         Queue file names are now 15 characters long, rather than 14 characters
1728                 long, to accomodate envelope splitting.  File systems with
1729                 a 14 character file name length limit are no longer
1730                 supported.
1731         Recipient list used for delivery now gets internally ordered by
1732                 hostsignature (character string version of MX RR).  This orders
1733                 recipients for the same MX RR's together meaning smaller
1734                 portions of the list need to be scanned (instead of the whole
1735                 list) each delivery() pass to determine piggybacking.  The
1736                 significance of the change is better the larger the recipient
1737                 list.  Hostsignature is now created during recipient list
1738                 creation rather than just before delivery.
1739         Enhancements for more opportunistic piggybacking.  Previous
1740                 piggybacking (called coincidental) extended to coattail
1741                 piggybacking.  Rather than complete MX RR matching
1742                 (coincidental) piggybacking is done if just the lowest value
1743                 preference matches (coattail).
1744         If sendmail receives a temporary error on a RCPT TO: command, it will
1745                 try other MX hosts if available.
1746         DefaultAuthInfo can contain a list of mechanisms to be used for
1747                 outgoing (client-side) SMTP Authentication.
1748         New modifier 'A' for DaemonPortOptions/ClientPortOptions to disable
1749                 AUTH (overrides 'a' modifier in DaemonPortOptions).  Based
1750                 on patch from Lyndon Nerenberg of Messaging Direct.
1751         Enable AUTH mechanism EXTERNAL if STARTTLS is used.
1752         A new ruleset authinfo can be used to return client side
1753                 authentication information for AUTH instead of DefaultAuthInfo.
1754                 Therefore the DefaultAuthInfo option is deprecated and will be
1755                 removed in future versions.
1756         Accept any SMTP continuation code 3xy for AUTH even though RFC 2554
1757                 requires 334.  Mercury 1.48 is a known offender.
1758         Add new option AuthMaxBits to limit the overall encryption strength
1759                 for the security layer in SMTP AUTH (SASL).  See
1760                 doc/op/ for details.
1761         Introduce new STARTTLS related macros {cn_issuer}, {cn_subject},
1762                 {cert_md5} which hold the CN (common name) of the CA that
1763                 signed the presented certificate, the CN and the MD5 hash
1764                 of the presented certificate, respectively.
1765         New ruleset try_tls to decide whether to try (as client) STARTTLS.
1766         New ruleset srv_features to enable/disable certain features in the
1767                 server per connection.  See doc/op/ for details.
1768         New ruleset tls_rcpt to decide whether to send e-mail to a particular
1769                 recipient; useful to decide whether a conection is secure
1770                 enough on a per recipient basis.
1771         New option TLSSrvOptions to modify some aspects of the server
1772                 for STARTTLS.
1773         If no certificate has been requested, the macro {verify} has the
1774                 value "NOT".
1775         New M=S modifier for ClientPortOptions/DaemonPortOptions to turn off
1776                 using/offering STARTTLS when delivering/receiving e-mail.
1777         Macro expand filenames/directories for certs and keys in the .cf file.
1778                 Proposed by Neil Rickert of Northern Illinois University.
1779         Generate an ephemeral RSA key for a STARTTLS connection only if
1780                 really required.  This change results in a noticable
1781                 performance gains on most machines.  Moreover, if shared
1782                 memory is in use, reuse the key several times.
1783         Add queue groups which can be used to group queue directories with
1784                 the same behavior together.  See doc/op/ for details.
1785         If the new option FastSplit (defaults to one) has a value greater
1786                 than zero, it suppresses the MX lookups on addresses when they
1787                 are initially sorted which may result in faster envelope
1788                 splitting.  If the mail is submitted directly from the
1789                 command line, then the value also limits the number of
1790                 processes to deliver the envelopes; if more envelopes are
1791                 created they are only queued up and must be taken care of
1792                 by a queue run.
1793         The check for 'enough disk space' now pays attention to which file
1794                 system each queue directory resides in.
1795         All queue runners can be cleanly terminated via SIGTERM to parent.
1796         New option QueueFileMode for the default permissions of queue files.
1797         Add parallel queue runner code.  Allows multiple queue runners per work
1798                 group (one or more queues in a multi-queue environment
1799                 collected together) to process the same work list at the
1800                 same time.
1801         Option MaxQueueChildren added to limit the number of concurrently
1802                 active queue runner processes.
1803         New option MaxRunnersPerQueue to specify the maximum number of queue
1804                 runners per queue group.
1805         Queue member selection by substring pattern matching now allows
1806                 the pattern to be negated.  For -qI, -qR and -qS it is
1807                 permissible for -q!I, -q!R and -q!S to mean remove members
1808                 of the queue that match during processing.
1809         New -qp[time] option is similar to -qtime, except that instead of
1810                 periodically forking a child to process the queue, a single
1811                 child is forked for each queue that sleeps between queue
1812                 runs.  A SIGHUP signal can be sent to restart this
1813                 persistent queue runner.
1814         The SIGHUP signal now restarts a timed queue run process (i.e., a
1815                 sendmail process which only runs the queue at an interval:
1816                 sendmail -q15m).
1817         New option NiceQueueRun to set the priority of queue runners.
1818                 Proposed by Thom O'Connor.
1819         sendmail will run the queue(s) in the background when invoked with -q
1820                 unless the new -qf option or -v is used.
1821         QueueSortOrder=Random sorts the queue randomly, which is useful if
1822                 several queue runners are started by hand to avoid contention.
1823         QueueSortOrder=Modification sorts the queue by the modification time
1824                 of the qf file (older entries first).
1825         Support Deliver By SMTP Service Extension (RFC 2852) which allows
1826                 a client to specify an amount of time within which an e-mail
1827                 should be delivered.  New option DeliverByMin added to set the
1828                 minimum amount of time or disable the extension.
1829         Non-printable characters (ASCII: 0-31, 127) in mailbox addresses are
1830                 not allowed unless escaped or quoted.
1831         Add support for a generic DNS map.  Based on a patch contributed
1832                 by Leif Johansson of Stockholm University, which was based on
1833                 work by Assar Westerlund of Swedish Institute of Computer
1834                 Science, Kista, and Johan Danielsson of Royal Institute of
1835                 Technology, Stockholm, Sweden.
1836         MX records will be looked up for FallBackMXhost.  To use the old
1837                 behavior (no MX lookups), put the name in square brackets.
1838                 Proposed by Thom O'Connor.
1839         Use shared memory to store free space of filesystems that are used
1840                 for queues, if shared memory is available and if a key is set
1841                 via SharedMemoryKey.  This minimizes the number of system
1842                 calls to check the available space.  See doc/op/ for
1843                 details.
1844         If shared memory is compiled in the option -bP can be used to print
1845                 the number of entries in the queue(s).
1846         Enable generic mail filter API (milter).  See libmilter/README
1847                 and the usual documentation for details.
1848         Remove AutoRebuildAliases option, deprecated since 8.10.
1849         Remove '-U' (initial user submission) command line option as
1850                 announced in 8.10.
1851         Remove support for non-standard SMTP command XUSR.  Use an MSA instead.
1852         New macro {addr_type} which contains whether the current address is
1853                 an envelope sender or recipient address.  Suggested by
1854                 Neil Rickert of Northern Illinois University.
1855         Two new options for host maps: -d (retransmission timeout),
1856                 -r (number of retries).
1857         New option for LDAP maps: the -V<sep> allows you to specify a
1858                 separator such that a lookup can return both an attribute
1859                 and value separated by the given separator.
1860         Add new operators '%', '|', '&' (modulo, binary or, binary and)
1861                 to map class arith.
1862         If DoubleBounceAddress expands to an empty string, ``double bounces''
1863                 (errors that occur when sending an error message) are dropped.
1864         New DontBlameSendmail options GroupReadableSASLDBFile and
1865                 GroupWritableSASLDBFile to relax requirements for sasldb files.
1866         New DontBlameSendmail options GroupReadableKeyFile to relax
1867                 requirements for files containing secret keys.  This is
1868                 necessary for the MSP if client authentification is used.
1869         Properly handle quoted filenames for class files (to allow for
1870                 filenames with spaces).
1871         Honor the resolver option RES_NOALIASES when canonifying hostnames.
1872         Add macros to avoid the reuse of {if_addr} etc:
1873                 {if_name_out}   hostname of interface of outgoing connection.
1874                 {if_addr_out}   address of interface of outgoing connection.
1875                 {if_family_out} family of interface of outgoing connection.
1876                 The latter two are only set if the interface does not belong
1877                 to the loopback net.
1878         Add macro {nrcpts} which holds the number of (validated) recipients.
1879         DialDelay option applies only to mailers with flag 'Z'.  Patch from
1880                 Juergen Georgi of RUS University of Stuttgart.
1881         New Timeout.lhlo,auth,starttls options to limit the time waiting for
1882                 an answer to the LMTP LHLO, SMTP AUTH or STARTTLS command.
1883         New Timeout.aconnect option to limit the overall waiting time for
1884                 all connections for a single delivery attempt to succeed.
1885         Limit the rate recipients in the SMTP envelope are accepted once
1886                 a threshold number of recipients has been rejected (option
1887                 BadRcptThrottle).  From Gregory A Lundberg of the WU-FTPD
1888                 Development Group.
1889         New option DelayLA to delay connections if the load averages
1890                 exceeds the specified value.  The default of 0 does not
1891                 change the previous behavior.  A value greater than 0
1892                 will cause sendmail to sleep for one second on most
1893                 SMTP commands and before accepting connections if that
1894                 load average is exceeded.
1895         Use a dynamic (instead of fixed-size) buffer for the list of
1896                 recipients that are sent during a connection to a mailer.
1897                 This also introduces a new mailer field 'r' which defines
1898                 the maximum number of recipients (defaults to 100).
1899                 Based on patch by Motonori Nakamura of Kyoto University.
1900         Add new F=1 mailer flag to disable sending of null characters ('\0').
1901         Add new F=2 mailer flag to disable use of ESMTP, using SMTP instead.
1902         The deprecated [TCP] builtin mailer pathname (P=) is gone.  Use [IPC]
1903                 instead.
1904         IPC is no longer available as first mailer argument (A=) for [IPC]
1905                 builtin mailer pathnames.  Use TCP instead.
1906         PH map code updated to use the new libphclient API instead of the
1907                 old libqiapi library.  Contributed by Mark Roth of the
1908                 University of Illinois at Urbana-Champaign.
1909         New option DirectSubmissionModifiers to define {daemon_flags}
1910                 for direct (command line) submissions.
1911         New M=O modifier for DaemonPortOptions to ignore the socket in
1912                 case of failures.  Based on patch by Jun-ichiro itojun
1913                 Hagino of the KAME Project.
1914         Add Disposition-Notification-To: (RFC 2298) to the list of headers
1915                 whose content is rewritten similar to Reply-To:.
1916                 Proposed by Andrzej Filip.
1917         Use STARTTLS/AUTH=server/client for logging incoming/outgoing
1918                 STARTTLS/AUTH connections; log incoming connections at level
1919                 9 or higher.  Use AUTH/STARTTLS instead of SASL/TLS for SMTP
1920                 AUTH/STARTTLS related logfile entries.
1921         Convert unprintable characters (and backslash) into octal or C format
1922                 before logging.
1923         Log recipients if no message is transferred but QUIT/RSET is given
1924                 (at LogLevel 9/10 or higher).
1925         Log discarded recipients at LogLevel 10 or higher.
1926         Do not log "did not issue MAIL/EXPN/VRFY/ETRN" for connections
1927                 in which most commands are rejected due to check_relay or
1928                 TCP Wrappers if the host tries one of those commands anyway.
1929         Change logging format for cloned envelopes to be similar to that for
1930                 DSNs ("old id: new id: clone").  Suggested by Ulrich Windl
1931                 of the Universitat Regensburg.
1932         Added libsm, a C library of general purpose abstractions including
1933                 assertions, tracing and debugging with named debug categories,
1934                 exception handling, malloc debugging, resource pools,
1935                 portability abstractions, and an extensible buffered I/O
1936                 package.  It will at some point replace libsmutil.
1937                 See libsm/index.html for details.
1938         Fixed most memory leaks in sendmail which were previously taken
1939                 care of by fork() and exit().
1940         Use new sm_io*() functions in place of stdio calls.  Allows for
1941                 more consistent portablity amongst different platforms
1942                 new and old (from new libsm).
1943         Common I/O pkg means just one buffering method needed instead of two
1944                 ('bf_portable' and 'bf_torek' now just 'bf').
1945         Sfio no longer needed as SASL/TLS code uses sm_io*() API's.
1946         New possible value 'interactive' for SuperSafe which can be used
1947                 together with DeliveryMode=interactive is to avoid some disk
1948                 synchronizations calls.
1949         Add per-recipient status information to mailq -v output.
1950         T_ANY queries are no longer used by sendmail.
1951         When compiling with "gcc -O -Wall" specify "-DSM_OMIT_BOGUS_WARNINGS"
1952                 too (see include/sm/cdefs.h for more info).
1953         sendmail -d now has general support for named debug categories.
1954                 See libsm/debug.html and section 3.4 of doc/op/
1955                 for details.
1956         Eliminate the "postmaster warning" DSNs on address parsing errors
1957                 such as unbalanced angle brackets or parentheses.  The DSNs
1958                 generated by this condition were illegal (not RFC conform).
1959                 Problem noted by Ulrich Windl of the Universitaet Regensburg.
1960         Do not issue a DSN if the ruleset localaddr resolves to the $#error
1961                 mailer and the recipient has hence been rejected during the
1962                 SMTP dialogue.  Problem reported by Larry Greenfield of CMU.
1963         Deal with a case of multiple deliveries on misconfigured systems
1964                 that do not have postmaster defined.  If an email was sent
1965                 from an address to which a DSN cannot be returned and
1966                 in which at least one recipient address is non-deliverable,
1967                 then that email had been delivered in each queue run.
1968                 Problem reported by Matteo HCE Valsasna of Universita
1969                 degli Studi dell'Insubria.
1970         The compilation options SMTP, DAEMON, and QUEUE have been removed,
1971                 i.e., the corresponding code is always compiled in now.
1972         Log the command line in daemon/queue-run mode at LogLevel 10 and
1973                 higher.  Suggested by Robert Harker of Harker Systems.
1974         New ResolverOptions setting: WorkAroundBrokenAAAA.  When
1975                 attempting to canonify a hostname, some broken nameservers
1976                 will return SERVFAIL (a temporary failure) on T_AAAA (IPv6)
1977                 lookups.  If you want to excuse this behavior, use this new
1978                 flag.  Suggested by Chris Foote of SE Network Access and
1979                 Mark Roth of the University of Illinois at
1980                 Urbana-Champaign.
1981         Free the memory allocated by getipnodeby{addr,name}().  Problem
1982                 noted by Joy Latten of IBM.
1983         ConnectionRateThrottle limits the number of connections per second
1984                 to each daemon individually, not the overall number of
1985                 connections.
1986         Specifying only "ldap:" as an AliasFile specification will force
1987                 sendmail to use a default alias schema as outlined in the
1988                 ``USING LDAP FOR ALIASES, MAPS, and CLASSES'' section of
1989                 cf/README.
1990         Add a new syntax for the 'F' (file class) command.  If
1991                 the first character after the class name is not a '/' or a
1992                 '|' and it contains an '@' (e.g., F{X}key@class:spec), the
1993                 rest of the line will be parsed as a map lookup.  This
1994                 allows classes to be filled via a map lookup.  See
1995                 for more syntax information.  Specifically, this can be
1996                 used for commands such as VIRTUSER_DOMAIN_FILE() to read
1997                 the list of domains via LDAP (see the ``USING LDAP FOR
1998                 ALIASES, MAPS, and CLASSES'' section of cf/README for an
1999                 example).
2000         The new macro ${sendmailMTACluster} determines the LDAP cluster for
2001                 the default schema used in the above two items.
2002         Unless DontBlameSendmail=RunProgramInUnsafeDirPath is set, log a
2003                 warning if a program being run from a mailer or file class
2004                 (e.g., F|/path/to/prog) is in an unsafe directory path.
2005         Unless DontBlameSendmail=RunWritableProgram is set, log a warning
2006                 if a program being run from a mailer or file class
2007                 (e.g., F|/path/to/prog) is group or world writable.
2008         Loopback interfaces (e.g., "lo0") are now probed for class {w}
2009                 hostnames.  Setting DontProbeInterfaces to "loopback"
2010                 (without quotes) will disable this and return to the
2011                 pre-8.12 behavior of only probing non-loopback interfaces.
2012                 Suggested by Bryan Stansell of GNAC.
2013         In accordance with RFC 2821 section 4.1.4, accept multiple
2014                 HELO/EHLO commands.
2015         Multiple ClientPortOptions settings are now allowed, one for each
2016                 possible protocol family which may be used for outgoing
2017                 connections.  Restrictions placed on one family only affect
2018                 outgoing connections on that particular family.  Because of
2019                 this change, the ${client_flags} macro is not set until the
2020                 connection is established.  Based on patch from Motonori
2021                 Nakamura of Kyoto University.
2022         PrivacyOptions=restrictexpand instructs sendmail to drop privileges
2023                 when the -bv option is given by users who are neither root
2024                 nor the TrustedUser so users can not read private aliases,
2025                 forwards, or :include: files.  It also will override the -v
2026                 (verbose) command line option.
2027         If the M=b modifier is set in DaemonPortOptions and the interface
2028                 address can't be used for the outgoing connection, fall
2029                 back to the settings in ClientPortOptions (if set).
2030                 Problem noted by John Beck of Sun Microsystems.
2031         New named config file rule check_data for DATA command (input:
2032                 number of recipients).  Based on patch from Mark Roth of
2033                 the University of Illinois at Urbana-Champaign.
2034         Add support for ETRN queue selection per RFC 1985.  The queue group
2035                 can be specified using the '#' option character.  For
2036                 example, 'ETRN #queuegroup'.
2037         If an LDAP server times out or becomes unavailable, close the
2038                 current connection and reopen to get to one of the fallback
2039                 servers.  Patch from Paul Hilchey of the University of
2040                 British Columbia.
2041         Make default error number on $#error messages 550 instead of 501
2042                 because 501 is not allowed on all commands.
2043         The .cf file option UnsafeGroupWrites is deprecated, it should be
2044                 replaced with the settings GroupWritableForwardFileSafe
2045                 and GroupWritableIncludeFileSafe in DontBlameSendmail
2046                 if required.
2047         The deprecated ldapx map class has been removed.  Use the ldap map
2048                 class instead.
2049         Any IPv6 addresses used in configuration should be prefixed by the
2050                 "IPv6:" tag to identify the address properly.  For example,
2051                 if you want to add the IPv6 address [2002:c0a8:51d2::23f4] to
2052                 class {w}, you would need to add [IPv6:2002:c0a8:51d2::23f4].
2053         Change the $&{opMode} macro if the operation mode changes while the
2054                 MTA is running.  For example, during a queue run.
2055         Add "use_inet6" as a new ResolverOptions flag to control the
2056                 RES_USE_INET6 resolver option.  Based on patch from Rick
2057                 Nelson of IBM.
2058         The maximum number of commands before the MTA slows down when too
2059                 many "light weight" commands have been received are now
2060                 configurable during compile time.  The current values and
2061                 their defaults are:
2062                     MAXBADCOMMANDS      25      unknown commands
2063                     MAXNOOPCOMMANDS     20      NOOP, VERB, ONEX, XUSR
2064                     MAXHELOCOMMANDS     3       HELO, EHLO
2065                     MAXVRFYCOMMANDS     6       VRFY, EXPN
2066                     MAXETRNCOMMANDS     8       ETRN
2067                 Setting a value to 0 disables the check.  Patch from Bryan
2068                 Costales of SL3D, Inc.
2069         The header syntax H?${MyMacro}?X-My-Header: now not only checks if
2070                 ${MyMacro} is defined but also that it is not empty.
2071         Properly quote usernames with special characters if they are used
2072                 in headers.  Problem noted by Kari Hurtta of the Finnish
2073                 Meteorological Institute.
2074         Be sure to include the proper Final-Recipient: DSN header in bounce
2075                 messages for messages for mailing list expanded addresses
2076                 which are not delivered on the initial attempt.
2077         Do not treat errors as sticky when doing delivery via LMTP after
2078                 the final dot has been sent to avoid affecting future
2079                 deliveries.  Problem reported by Larry Greenfield of CMU.
2080         New compile time flag REQUIRES_DIR_FSYNC which turns on support for
2081                 file systems that require to call fsync() for a directory
2082                 if the meta-data in it has been changed.  This should be
2083                 set at least for ReiserFS; it is enabled by default for Linux.
2084                 See sendmail/README for further information.
2085         Avoid file locking deadlock when updating the statistics file if
2086                 sendmail is signaled to terminate.  Problem noted by
2087                 Christophe Wolfhugel of France Telecom.
2088         Set the $c macro (hop count) as it is being set instead of when the
2089                 envelope is initialized.  Problem noted by Kari Hurtta of
2090                 the Finnish Meteorological Institute.
2091         Properly count recipients for DeliveryMode defer and queue.  Fix
2092                 from Peter A. Friend of EarthLink.
2093         Treat invalid hesiod lookups as permanent errors instead of
2094                 temporary errors.  Problem noted by Russell McOrmond of
2096         Portability:
2097                 Remove support for AIX 2, which supports only 14 character
2098                         filenames and is outdated anyway.  Suggested by
2099                         Valdis Kletnieks of Virginia Tech.
2100                 Change several settings for Irix 6: remove confSBINDIR,
2101                         i.e., use default /usr/sbin, change owner/group
2102                         of man pages and user-executable to root/sys, set
2103                         optimization limit to 0 (unlimited).  Based on patch
2104                         from Ayamura Kikuchi, M.D, and proposal from Kari
2105                         Hurtta of the Finnish Meteorological Institute.
2106                 Do not assume LDAP support is installed by default under
2107                         Solaris 8 and later.
2108                 Add support for OpenUNIX.
2109         CONFIG: Increment version number of config file to 10.
2110         CONFIG: Add an install target and a README file in cf/cf.
2111         CONFIG: Don't accept addresses of the form a@b@, a@b@c, a@[b]c, etc.
2112         CONFIG: Reject empty recipient addresses (in check_rcpt).
2113         CONFIG: The access map uses an option of -T<TMPF> to deal with
2114                 temporary lookup failures.
2115         CONFIG: New value for access map: SKIP, which causes the default
2116                 action to be taken by aborting the search for domain names
2117                 or IP nets.
2118         CONFIG: check_rcpt can deal with TEMPFAIL for either recipient or
2119                 relay address as long as the other part allows the email
2120                 to get through.
2121         CONFIG: Entries for virtusertable can make use of a third parameter
2122                 "%3" which contains "+detail" of a wildcard match, i.e., an
2123                 entry like user+*@domain.  This allows handling of details by
2124                 using %1%3 as the RHS.  Additionally, a "+" wildcard has been
2125                 introduced to match only non-empty details of addresses.
2126         CONFIG: Numbers for rulesets used by MAILERs have been removed
2127                 and hence there is no required order within the MAILER
2128                 section anymore except for MAILER(`uucp') which must come
2129                 after MAILER(`smtp') if uucp-dom and uucp-uudom are used.
2130         CONFIG: Hosts listed in the generics domain class {G}
2131                 (GENERICS_DOMAIN() and GENERICS_DOMAIN_FILE()) are treated
2132                 as canonical.  Suggested by Per Hedeland of Ericsson.
2133         CONFIG: If FEATURE(`delay_checks') is used, make sure that a lookup
2134                 in the access map which returns OK or RELAY actually
2135                 terminates check_* ruleset checking.
2136         CONFIG: New tag TLS_Rcpt: for access map to be used by ruleset
2137                 tls_rcpt, see cf/README for details.
2138         CONFIG: Change format of Received: header line which reveals whether
2139                 STARTTLS has been used to "(version=${tls_version}
2140                 cipher=${cipher} bits=${cipher_bits} verify=${verify})".
2141         CONFIG: Use "Spam:" as tag for lookups for FEATURE(`delay_checks')
2142                 options friends/haters instead of "To:" and enable
2143                 specification of whole domains instead of just users.
2144                 Notice: this change is not backward compatible.
2145                 Suggested by Chris Adams from HiWAAY Informations Services.
2146         CONFIG: Allow for local extensions for most new rulesets, see
2147                 cf/README for details.
2148         CONFIG: New FEATURE(`lookupdotdomain') to lookup also .domain in
2149                 the access map.  Proposed by Randall Winchester of the
2150                 University of Maryland.
2151         CONFIG: New FEATURE(`local_no_masquerade') to avoid masquerading for
2152                 the local mailer.  Proposed by Ingo Brueckl of Wupper Online.
2153         CONFIG: confRELAY_MSG/confREJECT_MSG can override the default
2154                 messages for an unauthorized relaying attempt/for access
2155                 map entries with RHS REJECT, respectively.
2156         CONFIG: FEATURE(`always_add_domain') takes an optional argument
2157                 to specify another domain to be added instead of the local one.
2158                 Suggested by Richard H. Gumpertz of Computer Problem
2159                 Solving.
2160         CONFIG: confAUTH_OPTIONS allows setting of Cyrus-SASL specific
2161                 options, see doc/op/ for details.
2162         CONFIG: confAUTH_MAX_BITS sets the maximum encryption strength for
2163                 the security layer in SMTP AUTH (SASL).
2164         CONFIG: If Local_localaddr resolves to $#ok, localaddr is terminated
2165                 immediately.
2166         CONFIG: FEATURE(`enhdnsbl') is an enhanced version of dnsbl which
2167                 allows checking of the return values of the DNS lookups.
2168                 See cf/README for details.
2169         CONFIG: FEATURE(`dnsbl') allows now to specify the behavior for
2170                 temporary lookup failures.
2171         CONFIG: New option confDELIVER_BY_MIN to specify minimum time for
2172                 Deliver By (RFC 2852) or to turn off the extension.
2173         CONFIG: New option confSHARED_MEMORY_KEY to set the key for shared
2174                 memory use.
2175         CONFIG: New FEATURE(`compat_check') to look up a key consisting
2176                 of the sender and the recipient address delimited by the
2177                 string "<@>", e.g., sender@sdomain<@>recipient@rdomain,
2178                 in the access map.  Based on code contributed by Mathias
2179                 Koerber of Singapore Telecommunications Ltd.
2180         CONFIG: Add EXPOSED_USER_FILE() command to allow an exposed user
2181                 file.  Suggested by John Beck of Sun Microsystems.
2182         CONFIG: Don't use MAILER-DAEMON for error messages delivered
2183                 via LMTP.  Problem reported by Larry Greenfield of CMU.
2184         CONFIG: New FEATURE(`preserve_luser_host') to preserve the name of
2185                 the recipient host if LUSER_RELAY is used.
2186         CONFIG: New FEATURE(`preserve_local_plus_detail') to preserve the
2187                 +detail portion of the address when passing address to
2188                 local delivery agent.  Disables alias and .forward +detail
2189                 stripping.  Only use if LDA supports this.
2190         CONFIG: Removed deprecated FEATURE(`rbl').
2192                 which allow you to specify 'equivalent' hosts for LDAP
2193                 Routing lookups.  Equivalent hostnames are replaced by the
2194                 masquerade domain name for lookups.  See cf/README for
2195                 additional details.
2196         CONFIG: Add a fourth argument to FEATURE(`ldap_routing') which
2197                 instructs the rulesets on what to do if the address being
2198                 looked up has +detail information.  See cf/README for more
2199                 information.
2200         CONFIG: When chosing a new destination via LDAP Routing, also look
2201                 up the new routing address/host in the mailertable.  Based
2202                 on patch from Don Badrak of the United States Census Bureau.
2203         CONFIG: Do not reject the SMTP Mail from: command if LDAP Routing
2204                 is in use and the bounce option is enabled.  Only reject
2205                 recipients as user unknown.
2206         CONFIG: Provide LDAP support for the remaining database map
2207                 features.  See the ``USING LDAP FOR ALIASES AND MAPS''
2208                 section of cf/README for more information.
2209         CONFIG: Add confLDAP_CLUSTER which defines the ${sendmailMTACluster}
2210                 macro used for LDAP searches as described above in ``USING
2211                 LDAP FOR ALIASES, MAPS, AND CLASSES''.
2212         CONFIG: confCLIENT_OPTIONS has been replaced by CLIENT_OPTIONS(),
2213                 which takes the options as argument and can be used
2214                 multiple times; see cf/README for details.
2215         CONFIG: Add configuration macros for new options:
2216                 confBAD_RCPT_THROTTLE           BadRcptThrottle
2217                 confDIRECT_SUBMISSION_MODIFIERS DirectSubmissionModifiers
2218                 confMAILBOX_DATABASE            MailboxDatabase
2219                 confMAX_QUEUE_CHILDREN          MaxQueueChildren
2220                 confMAX_RUNNERS_PER_QUEUE       MaxRunnersPerQueue
2221                 confNICE_QUEUE_RUN              NiceQueueRun
2222                 confQUEUE_FILE_MODE             QueueFileMode
2223                 confFAST_SPLIT                  FastSplit
2224                 confTLS_SRV_OPTIONS             TLSSrvOptions
2225                 See above (and related documentation) for further information.
2226         CONFIG: Add configuration variables for new timeout options:
2227                 confTO_ACONNECT         Timeout.aconnect
2228                 confTO_AUTH             Timeout.auth
2229                 confTO_LHLO             Timeout.lhlo
2230                 confTO_STARTTLS         Timeout.starttls
2231         CONFIG: Add configuration macros for mail filter API:
2232                 confINPUT_MAIL_FILTERS          InputMailFilters
2233                 confMILTER_LOG_LEVEL            Milter.LogLevel
2234                 confMILTER_MACROS_CONNECT       Milter.macros.connect
2235                 confMILTER_MACROS_HELO          Milter.macros.helo
2236                 confMILTER_MACROS_ENVFROM       Milter.macros.envfrom
2237                 confMILTER_MACROS_ENVRCPT       Milter.macros.envrcpt
2238                 Mail filters can be defined via INPUT_MAIL_FILTER() and
2239                 MAIL_FILTER().  See libmilter/README, cf/README, and
2240                 doc/op/ for details.
2241         CONFIG: Add support for accepting temporarily unresolvable domains.
2242                 See cf/README for details.  Based on patch by Motonori
2243                 Nakamura of Kyoto University.
2244         CONFIG: confDEQUOTE_OPTS can be used to specify options for the
2245                 dequote map.
2246         CONFIG: New macro QUEUE_GROUP() to define queue groups.
2247         CONFIG: New FEATURE(`queuegroup') to select a queue group based
2248                 on the full e-mail address or the domain of the recipient.
2249         CONFIG: Any IPv6 addresses used in configuration should be prefixed
2250                 by the "IPv6:" tag to identify the address properly.  For
2251                 example, if you want to use the IPv6 address
2252                 2002:c0a8:51d2::23f4 in the access database, you would need
2253                 to use IPv6:2002:c0a8:51d2::23f4 on the left hand side.
2254                 This affects the access database as well as the
2255                 relay-domains and local-host-names files.
2256         CONFIG: OSTYPE(aux) has been renamed to OSTYPE(a-ux).
2257         CONFIG: Avoid expansion of m4 keywords in SMART_HOST.
2258         CONFIG: Add MASQUERADE_EXCEPTION_FILE() for reading masquerading
2259                 exceptions from a file.  Suggested by Trey Breckenridge of
2260                 Mississippi State University.
2261         CONFIG: Add LOCAL_USER_FILE() for reading local users
2262                 (LOCAL_USER() -- $={L}) entries from a file.
2263         CONTRIB: dnsblaccess.m4 is a further enhanced version of enhdnsbl.m4
2264                 which allows to lookup error codes in the access map.
2265                 Contributed by Neil Rickert of Northern Illinois University.
2266         DEVTOOLS: Add new options for installation of include and library
2267                 files: confINCGRP, confINCMODE, confINCOWN, confLIBGRP,
2268                 confLIBMODE, confLIBOWN.
2269         DEVTOOLS: Add new option confDONT_INSTALL_CATMAN to turn off
2270                 installation of the the formatted man pages on operating
2271                 systems which don't include cat directories.
2272         EDITMAP: New program for editing maps as supplement to makemap.
2273         MAIL.LOCAL: Mail.local now uses the libsm mbdb package to look up
2274                 local mail recipients.  New option -D mbdb specifies the
2275                 mailbox database type.
2276         MAIL.LOCAL: New option "-h filename" which instructs mail.local to
2277                 deliver the mail to the named file in the user's home
2278                 directory instead of the system mail spool area.  Based on
2279                 patch from Doug Hardie of the Los Angeles Free-Net.
2280         MAILSTATS: New command line option -P which acts the same as -p but
2281                 doesn't truncate the statistics file.
2282         MAKEMAP: Add new option -t to specify a different delimiter
2283                 instead of white space.
2284         RMAIL: Invoke sendmail with '-G' to indicate this is a gateway
2285                 submission.  Problem noted by Kari Hurtta of the Finnish
2286                 Meteorological Institute.
2287         SMRSH: Use the vendor supplied directory on FreeBSD 3.3 and later.
2288         VACATION: Change Auto-Submitted: header value from auto-generated to
2289                 auto-replied.  From Kenneth Murchison of Oceana Matrix Ltd.
2290         VACATION: New option -d to send error/debug messages to stdout
2291                 instead of syslog.
2292         VACATION: New option -U which prevents the attempt to lookup login
2293                 in the password file.  The -f and -m options must be used
2294                 to specify the database and message file since there is no
2295                 home directory for the default settings for these options.
2296         VACATION: Vacation now uses the libsm mbdb package to look up
2297                 local mail recipients; it reads the MailboxDatabase option
2298                 from the file.  New option -C cffile which
2299                 specifies the path of the file.
2300         New Directories:
2301                 libmilter/docs
2302         New Files:
2303                 cf/cf/README
2304                 cf/cf/
2305                 cf/cf/
2306                 cf/feature/authinfo.m4
2307                 cf/feature/compat_check.m4
2308                 cf/feature/enhdnsbl.m4
2309                 cf/feature/msp.m4
2310                 cf/feature/local_no_masquerade.m4
2311                 cf/feature/lookupdotdomain.m4
2312                 cf/feature/preserve_luser_host.m4
2313                 cf/feature/preserve_local_plus_detail.m4
2314                 cf/feature/queuegroup.m4
2315                 cf/sendmail.schema
2316                 contrib/dnsblaccess.m4
2317                 devtools/M4/UNIX/sm-test.m4
2318                 devtools/OS/OpenUNIX.5.i386
2319                 editmap/*
2320                 include/sm/*
2321                 libsm/*
2322                 libsmutil/cf.c
2323                 libsmutil/err.c
2324                 sendmail/SECURITY
2325                 sendmail/TUNING
2326                 sendmail/bf.c
2327                 sendmail/bf.h
2328                 sendmail/sasl.c
2329                 sendmail/sm_resolve.c
2330                 sendmail/sm_resolve.h
2331                 sendmail/tls.c
2332         Deleted Files:
2333                 cf/feature/rbl.m4
2334                 cf/ostype/aix2.m4
2335                 devtools/OS/AIX.2
2336                 include/sendmail/cdefs.h
2337                 include/sendmail/errstring.h
2338                 include/sendmail/useful.h
2339                 libsmutil/errstring.c
2340                 sendmail/bf_portable.c
2341                 sendmail/bf_portable.h
2342                 sendmail/bf_torek.c
2343                 sendmail/bf_torek.h
2344                 sendmail/clock.c
2345         Renamed Files:
2346                 cf/cf/ => cf/cf/
2347                 cf/cf/ => cf/cf/
2348                 cf/ostype/aux.m4 => cf/ostype/a-ux.m4
2350 8.11.7/8.11.7   2003/03/29
2351         SECURITY: Fix a remote buffer overflow in header parsing by
2352                 dropping sender and recipient header comments if the
2353                 comments are too long.  Problem noted by Mark Dowd
2354                 of ISS X-Force.
2355         SECURITY: Fix a buffer overflow in address parsing due to
2356                 a char to int conversion problem which is potentially
2357                 remotely exploitable.  Problem found by Michal Zalewski.
2358                 Note: an MTA that is not patched might be vulnerable to
2359                 data that it receives from untrusted sources, which
2360                 includes DNS.
2361         To provide partial protection to internal, unpatched sendmail MTAs,
2362                 8.11.7 changes by default (char)0xff to (char)0x7f in
2363                 headers etc.  To turn off this conversion compile with
2364                 -DALLOW_255 or use the command line option -d82.101.
2365         To provide partial protection for internal, unpatched MTAs that may be
2366                 performing 7->8 or 8->7 bit MIME conversions, the default
2367                 for MaxMimeHeaderLength has been changed to 2048/1024.
2368                 Note: this does have a performance impact, and it only
2369                 protects against frontal attacks from the outside.
2370                 To disable the checks and return to pre-8.11.7 defaults,
2371                 set MaxMimeHeaderLength to 0/0.
2372         Properly clean up macros to avoid persistence of session data
2373                 across various connections.  This could cause session
2374                 oriented restrictions, e.g., STARTTLS requirements,
2375                 to erroneously allow a connection.  Problem noted
2376                 by Tim Maletic of Priority Health.
2377         Ignore comments in NIS host records when trying to find the
2378                 canonical name for a host.
2379         Fix a memory leak when closing Hesiod maps.
2380         Set ${msg_size} macro when reading a message from the command line
2381                 or the queue.
2382         Prevent a segmentation fault when clearing the event list by
2383                 turning off alarms before checking if event list is
2384                 empty.  Problem noted by Allan E Johannesen of Worcester
2385                 Polytechnic Institute.
2386         Fix a potential core dump problem if the environment variable
2387                 NAME is set.  Problem noted by Beth A. Chaney of
2388                 Purdue University.
2389         Prevent a race condition on child cleanup for delivery to files.
2390                 Problem noted by Fletcher Mattox of the University of
2391                 Texas.
2392         CONFIG: Do not bounce mail if FEATURE(`ldap_routing')'s bounce
2393                 parameter is set and the LDAP lookup returns a temporary
2394                 error.
2395         CONFIG: Fix a syntax error in the try_tls ruleset if
2396                 FEATURE(`access_db') is not enabled.
2397         LIBSMDB: Fix a lock race condition that affects makemap, praliases,
2398                 and vacation.
2399         LIBSMDB: Avoid a file creation race condition for Berkeley DB 1.X
2400                 and NDBM on systems with the O_EXLOCK open(2) flag.
2401         MAKEMAP: Avoid going beyond the end of an input line if it does
2402                 not contain a value for a key.  Based on patch from
2403                 Mark Bixby from Hewlett-Packard.
2404         MAIL.LOCAL: Fix a truncation race condition if the close() on
2405                 the mailbox fails.  Problem noted by Tomoko Fukuzawa of
2406                 Sun Microsystems.
2407         SMRSH: SECURITY: Only allow regular files or symbolic links to be
2408                 used for a command.  Problem noted by David Endler of
2409                 iDEFENSE, Inc.
2411 8.11.6/8.11.6   2001/08/20
2412         SECURITY: Fix a possible memory access violation when specifying
2413                 out-of-bounds debug parameters.  Problem detected by
2414                 Cade Cairns of SecurityFocus.
2415         Avoid leaking recipient information in unrelated DSNs.  This could
2416                 happen if a connection is aborted, several mails had been
2417                 scheduled for delivery via that connection, and the timeout
2418                 is reached such that several DSNs are sent next.  Problem
2419                 noted by Dileepan Moorkanat of Hewlett-Packard.
2420         Fix a possible segmentation violation when specifying too many
2421                 wildcard operators in a rule.  Problem detected by
2422                 Werner Wiethege.
2423         Avoid a segmentation fault on non-matching Hesiod lookups.  Problem
2424                 noted by Russell McOrmond of
2426 8.11.5/8.11.5   2001/07/31
2427         Fix a possible race condition when sending a HUP signal to restart
2428                 the daemon.  This could terminate the current process without
2429                 starting a new daemon.  Problem reported by Wolfgang Breyha
2430                 of SE Netway Communications.
2431         Only apply MaxHeadersLength when receiving a message via SMTP or
2432                 the command line.  Problem noted by Andrey J. Melnikoff.
2433         When finding the system's local hostname on an IPv6-enabled system
2434                 which doesn't have any IPv6 interface addresses, fall back
2435                 to looking up only IPv4 addresses.  Problem noted by Tim
2436                 Bosserman of EarthLink.
2437         When commands were being rejected due to check_relay or TCP
2438                 Wrappers, the ETRN command was not giving a response.
2439         Incoming IPv4 connections on a Family=inet6 daemon (using
2440                 IPv4-mapped addresses) were incorrectly labeled as "may be
2441                 forged".  Problem noted by Per Steinar Iversen of Oslo
2442                 University College.
2443         Shutdown address test mode cleanly on SIGTERM.  Problem noted by
2444                 Greg King of the OAO Corporation.
2445         Restore the original real uid (changed in main() to prevent
2446                 out of band signals) before invoking a delivery agent.
2447                 Some delivery agents use this for the "From " envelope
2448                 "header".  Problem noted by Leslie Carroll of the
2449                 University at Albany.
2450         Mark closed file descriptors properly to avoid reuse. Problem
2451                 noted by Jeff Bronson of J.D. Bronson, Inc.
2452         Setting Timeout options on the command line will also override
2453                 their sub-suboptions in the .cf file, e.g., -O
2454                 Timeout.queuereturn=2d will set all queuereturn timeouts
2455                 to 2 days.  Problem noted by Roger B.A. Klorese.
2456         Portability:
2457                 BSD/OS has a broken setreuid() implementation.  Problem
2458                         noted by Vernon Schryver of Rhyolite Software.
2459                 BSD/OS has /dev/urandom(4) (as of version 4.1/199910 ?).
2460                         Noted by Vernon Schryver of Rhyolite Software.
2461                 BSD/OS has fchown(2).  Noted by Dave Yadallee of Netline
2462                         2000 Internet Solutions Inc.
2463                 Solaris 2.X and later have strerror(3).  From Sebastian
2464                         Hagedorn of Cologne University.
2465         CONFIG: Fix parsing for IPv6 domain literals in addresses
2466                 (user@[IPv6:address]).  Problem noted by Liyuan Zhou.
2468 8.11.4/8.11.4   2001/05/28
2469         Clean up signal handling routines to reduce the chances of heap
2470                 corruption and other potential race conditions.
2471                 Terminating and restarting the daemon may not be
2472                 instantaneous due to this change.  Also, non-root users can
2473                 no longer send out-of-band signals.  Problem reported by
2474                 Michal Zalewski of BindView.
2475         If LogLevel is greater than 9 and SASL fails to negotiate an
2476                 encryption layer, avoid core dump logging the encryption
2477                 strength.  Problem noted by Miroslav Zubcic of Crol.
2478         If a server offers "AUTH=" and "AUTH " and the list of mechanisms is
2479                 different in those two lines, sendmail might not have
2480                 recognized (and used) all of the offered mechanisms.
2481         Fix an IP address lookup problem on Solaris 2.0 - 2.3.  Patch
2482                 from Kenji Miyake.
2483         This time, really don't use the .. directory when expanding
2484                 QueueDirectory wildcards.
2485         If a process is interrupted while closing a map, don't try to close
2486                 the same map again while exiting.
2487         Allow local mailers (F=l) to contact remote hosts (e.g., via
2488                 LMTP).  Problem noted by Norbert Klasen of the University
2489                 of Tuebingen.
2490         If Timeout.QueueReturn was set to a value less the time it took
2491                 to write a new queue file (e.g., 0 seconds), the bounce
2492                 message would be lost.  Problem noted by Lorraine L Goff of
2493                 Oklahoma State University.
2494         Pass map argument vector into map rewriting engine for the regex
2495                 and prog map types.  Problem noted by Stephen Gildea of
2496                 InTouch Systems, Inc.
2497         When closing an LDAP map due to a temporary error, close all of the
2498                 other LDAP maps which share the original map's connection
2499                 to the LDAP server.  Patch from Victor Duchovni of
2500                 Morgan Stanley.
2501         To detect changes of NDBM aliases files check the timestamp of the
2502                 .pag file instead of the .dir file.  Problem noted by Neil
2503                 Rickert of Northern Illinois University.
2504         Don't treat temporary hesiod lookup failures as permanent.  Patch
2505                 from Werner Wiethege.
2506         If ClientPortOptions is set, make sure to create the outgoing socket
2507                 with the family set in that option.  Patch from Sean Farley.
2508         Avoid a segmentation fault trying to dereference a NULL pointer
2509                 when logging a MaxHopCount exceeded error with an empty
2510                 recipient list.  Problem noted by Chris Adams of HiWAAY
2511                 Internet Services.
2512         Fix DSN for "Too many hops" bounces.  Problem noticed by Ulrich
2513                 Windl of the Universitaet Regensburg.
2514         Fix DSN for "mail loops back to me" bounces.  Problem noticed by
2515                 Kari Hurtta of the Finnish Meteorological Institute.
2516         Portability:
2517                 OpenBSD has a broken setreuid() implementation.
2518         CONFIG: Undo change from 8.11.1: change 501 SMTP reply code back
2519                 to 553 since it is allowed by DRUMS.
2520         CONFIG: Add OSTYPE(freebsd4) for FreeBSD 4.X.
2521         DEVTOOLS: did not properly handle paths in the source
2522                 file name argument.  Noted by Kari Hurtta of the Finnish
2523                 Meteorological Institute.
2524         DEVTOOLS: Add FAST_PID_RECYCLE to compile time options for OpenBSD
2525                 since it generates random process ids.
2526         PRALIASES: Add back adaptive algorithm to deal with different endings
2527                 of entries in the database (with/without trailing '\0').
2528                 Patch from John Beck of Sun Microsystems.
2529         New Files:
2530                 cf/ostype/freebsd4.m4
2532 8.11.3/8.11.3   2001/02/27
2533         Prevent a segmentation fault when a bogus value was used in the
2534                 LDAPDefaultSpec option's -r, -s, or -M flags and if a bogus
2535                 option was used.  Problem noted by Allan E Johannesen of
2536                 Worcester Polytechnic Institute.
2537         Prevent "token too long" message by shortening {currHeader} which
2538                 could be too long if the last copied character was a quote.
2539                 Problem detected by Jan Krueger of digitalanswers
2540                 communications consulting gmbh.
2541         Additional IPv6 check for unspecified addresses.  Patch from
2542                 Jun-ichiro itojun Hagino of the KAME Project.
2543         Do not ignore the ClientPortOptions setting if DaemonPortOptions
2544                 Modifier=b (bind to same interface) is set and the
2545                 connection came in from the command line.
2546         Do not bind to the loopback address if DaemonPortOptions
2547                 Modifier=b (bind to same interface) is set.  Patch from
2548                 John Beck of Sun Microsystems.
2549         Properly deal with open failures on non-optional maps used in
2550                 check_* rulesets by returning a temporary failure.
2551         Buffered file I/O files were not being properly fsync'ed to disk
2552                 when they were committed.
2553         Properly encode '=' for the AUTH= parameter of the MAIL command.
2554                 Problem noted by Hadmut Danisch.
2555         Under certain circumstances the macro {server_name} could be set
2556                 to the wrong hostname (of a previous connection), which may
2557                 cause some rulesets to return wrong results.  This would
2558                 usually cause mail to be queued up and delivered later on.
2559         Ignore F=z (LMTP) mailer flag if $u is given in the mailer A=
2560                 equate.  Problem noted by Motonori Nakamura of Kyoto
2561                 University.
2562         Work around broken accept() implementations which only partially
2563                 fill in the peer address if the socket is closed before
2564                 accept() completes.
2565         Return an SMTP "421" temporary failure if the data file can't be
2566                 opened where the "354" reply would normally be given.
2567         Prevent a CPU loop in trying to expand a macro which doesn't exist
2568                 in a queue run.  Problem noted by Gordon Lack of Glaxo
2569                 Wellcome.
2570         If delivering via a program and that program exits with EX_TEMPFAIL,
2571                 note that fact for the mailq display instead of just showing
2572                 "Deferred".  Problem noted by Motonori Nakamura of Kyoto
2573                 University.
2574         If doing canonification via /etc/hosts, try both the fully
2575                 qualified hostname as well as the first portion of the
2576                 hostname.  Problem noted by David Bremner of the
2577                 University of New Brunswick.
2578         Portability:
2579                 Fix a compilation problem for mail.local and rmail if SFIO
2580                         is in use.  Problem noted by Auteria Wally
2581                         Winzer Jr. of Champion Nutrition.
2582                 IPv6 changes for platforms using KAME.  Patch from
2583                         Jun-ichiro itojun Hagino of the KAME Project.
2584                 OpenBSD 2.7 and higher has srandomdev(3).  OpenBSD 2.8 and
2585                         higher has BSDI-style login classes.  Patch from
2586                         Todd C.  Miller of Courtesan Consulting.
2587                 Unixware 7.1.1 doesn't allow h_errno to be set directly if
2588                         sendmail is being compiled with -kthread.  Problem
2589                         noted by Orion Poplawski of CQG, Inc.
2590         CONTRIB: buildvirtuser: Substitute current domain for $DOMAIN and
2591                 current left hand side for $LHS in virtuser files.
2592         DEVTOOLS: Do not pass make targets to recursive Build invocations.
2593                 Problem noted by Jeff Bronson of J.D. Bronson, Inc.
2594         MAIL.LOCAL: In LMTP mode, do not return errors regarding problems
2595                 storing the temporary message file until after the remote
2596                 side has sent the final DATA termination dot.  Problem
2597                 noted by Allan E Johannesen of Worcester Polytechnic
2598                 Institute.
2599         MAIL.LOCAL: If LMTP mode is set, give a temporary error if users
2600                 are also specified on the command line.  Patch from
2601                 Motonori Nakamura of Kyoto University.
2602         PRALIASES: Skip over AliasFile specifications which aren't based on
2603                 database files (i.e., only show dbm, hash, and btree).
2604         Renamed Files:
2605                 devtools/OS/OSF1.V5.0 => devtools/OS/OSF1.V5.x
2607 8.11.2/8.11.2   2000/12/29
2608         Prevent a segmentation fault when trying to set a class in
2609                 address test mode due to a negative array index.  Audit
2610                 other array indexing.  This bug is not believed to be
2611                 exploitable.  Noted by Michal Zalewski of the "Internet for
2612                 Schools" project (IdS).
2613         Add an FFR (for future release) to drop privileges when using
2614                 address test mode.  This will be turned on in 8.12. It can
2615                 be enabled by compiling with:
2616                 APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_TESTMODE_DROP_PRIVS')
2617                 in your devtools/Site/site.config.m4 file.  Suggested by
2618                 Michal Zalewski of the "Internet for Schools" project (IdS).
2619         Fix potential problem with Cyrus-SASL security layer which may have
2620                 caused I/O errors, especially for mechanism DIGEST-MD5.
2621         When QueueSortOrder was set to host, sendmail might not read
2622                 enough of the queue file to determine the host, making the
2623                 sort sub-optimal.  Problem noted by Jeff Earickson of
2624                 Colby College.
2625         Don't issue DSNs for addresses which use the NOTIFY parameter (per
2626                 RFC 1891) but don't have FAILURE as value.
2627         Initialize Cyrus-SASL library before the SMTP daemon is started.
2628                 This implies that every change to SASL related files requires
2629                 a restart of the daemon, e.g., Sendmail.conf, new SASL
2630                 mechanisms (in form of shared libraries).
2631         Properly set the STARTTLS related macros during a queue run for
2632                 a cached connection.  Bug reported by Michael Kellen of
2633                 NxNetworks, Inc.
2634         Log the server name in relay= for ruleset tls_server instead of the
2635                 client name.
2636         Include original length of bad field/header when reporting
2637                 MaxMimeHeaderLength problems.  Requested by Ulrich Windl of
2638                 the Universitat Regensburg.
2639         Fix delivery to set-user-ID files that are expanded from aliases in
2640                 DeliveryMode queue.  Problem noted by Ric Anderson of the
2641                 University of Arizona.
2642         Fix LDAP map -m (match only) flag.  Problem noted by Jeff Giuliano
2643                 of Collective Technologies.
2644         Avoid using a negative argument for sleep() calls when delaying answers
2645                 to EXPN/VRFY commands on systems which respond very slowly.
2646                 Problem noted by Mikolaj J. Habryn of Optus Internet
2647                 Engineering.
2648         Make sure the F=u flag is set in the default prog mailer
2649                 definition.  Problem noted by Kari Hurtta of the Finnish
2650                 Meteorological Institute.
2651         Fix IPv6 check for unspecified addresses.  Patch from
2652                 Jun-ichiro itojun Hagino of the KAME Project.
2653         Fix return values for IRIX nsd map.  From Kari Hurtta of the Finnish
2654                 Meteorological Institute.
2655         Fix parsing of DaemonPortOptions and ClientPortOptions.  Read all
2656                 of the parameters to find Family= setting before trying to
2657                 interpret Addr= and Port=.  Problem noted by Valdis
2658                 Kletnieks of Virginia Tech.
2659         When delivering to a file directly from an alias, do not call
2660                 initgroups(); instead use the DefaultUser group information.
2661                 Problem noted by Marc Schaefer of ALPHANET NF.
2662         RunAsUser now overrides the ownership of the control socket, if
2663                 created.  Otherwise, sendmail can not remove it upon
2664                 close.  Problem noted by Werner Wiethege.
2665         Fix ConnectionRateThrottle counting as the option is the number of
2666                 overall connections, not the number of connections per
2667                 socket.  A future version may change this to per socket
2668                 counting.
2669         Portability:
2670                 Clean up libsmdb so it functions properly on platforms
2671                         where sizeof(u_int32_t) != sizeof(size_t).  Problem
2672                         noted by Rein Tollevik of Basefarm AS.
2673                 Fix man page formatting for compatibility with Solaris'
2674                         whatis.  From Stephen Gildea of InTouch Systems, Inc.
2675                 UnixWare 7 includes snprintf() support.  From Larry
2676                         Rosenman.
2677                 IPv6 changes for platforms using KAME.  Patch from
2678                         Jun-ichiro itojun Hagino of the KAME Project.
2679                 Avoid a typedef compile conflict with Berkeley DB 3.X and
2680                         Solaris 2.5 or earlier.  Problem noted by Bob Hughes
2681                         of Pacific Access.
2682                 Add preliminary support for AIX 5.  Contributed by
2683                         Valdis Kletnieks of Virginia Tech.
2684                 Solaris 9 load average support from Andrew Tucker of Sun
2685                         Microsystems.
2686         CONFIG: Reject addresses of the form a!b if FEATURE(`nouucp', `r')
2687                 is used.  Problem noted by Phil Homewood of Asia Online,
2688                 patch from Neil Rickert of Northern Illinois University.
2689         CONFIG: Change the default DNS based blacklist server for
2690                 FEATURE(`dnsbl') to
2691         CONFIG: Deal correctly with the 'C' flag in {daemon_flags}, i.e.,
2692                 implicitly assume canonical host names.
2693         CONFIG: Deal with "::" in IPv6 addresses for access_db.  Based on
2694                 patch by Motonori Nakamura of Kyoto University.
2695         CONFIG: New OSTYPE(`aix5') contributed by Valdis Kletnieks of
2696                 Virginia Tech.
2697         CONFIG: Pass the illegal header form <list:;> through untouched
2698                 instead of making it worse.  Problem noted by Motonori
2699                 Nakamura of Kyoto University.
2700         CONTRIB: Added buildvirtuser (see `perldoc contrib/buildvirtuser`).
2701         CONTRIB: An empty queue is not an error.  Problem noted
2702                 by Jan Krueger of digitalanswers communications consulting
2703                 gmbh.
2704         CONTRIB: domainmap.m4: Handle domains with '-' in them.  From Mark
2705                 Roth of the University of Illinois at Urbana-Champaign.
2706         DEVTOOLS: Change the internal devtools OS, REL, and ARCH m4
2707                 variables into bldOS, bldREL, and bldARCH to prevent
2708                 namespace collisions.  Problem noted by Motonori Nakamura
2709                 of Kyoto University.
2710         RMAIL: Undo the 8.11.1 change to use -G when calling sendmail.  It
2711                 causes some changes in behavior and may break rmail for
2712                 installations where sendmail is actually a wrapper to
2713                 another MTA.  The change will re-appear in a future
2714                 version.
2715         SMRSH: Use the vendor supplied directory on HPUX 10.X, HPUX 11.X,
2716                 and SunOS 5.8.  Requested by Jeff A. Earickson of Colby
2717                 College and John Beck of Sun Microsystems.
2718         VACATION: Fix pattern matching for addresses to ignore.
2719         VACATION: Don't reply to addresses of the form owner-*
2720                 or *-owner.
2721         New Files:
2722                 cf/ostype/aix5.m4
2723                 contrib/buildvirtuser
2724                 devtools/OS/AIX.5.0
2726 8.11.1/8.11.1   2000/09/27
2727         Fix SMTP EXPN command output if the address expands to a single
2728                 name.  Fix from John Beck of Sun Microsystems.
2729         Don't try STARTTLS in the client if the PRNG has not been properly
2730                 seeded.  This problem only occurs on systems without
2731                 /dev/urandom.  Problem detected by Jan Krueger of
2732                 digitalanswers communications consulting gmbh and
2733                 Neil Rickert of Northern Illinois University.
2734         Don't use the . and .. directories when expanding QueueDirectory
2735                 wildcards.
2736         Do not try to cache LDAP connections across processes as a parent
2737                 process may close the connection before the child process
2738                 has completed.  Problem noted by Lai Yiu Fai of the Hong
2739                 Kong University of Science and Technology and Wolfgang
2740                 Hottgenroth of UUNET.
2741         Use Timeout.fileopen to limit the amount of time spent trying to
2742                 read the LDAP secret from a file.
2743         Prevent SIGTERM from removing a command line submitted item after
2744                 the user submits the message and before the first delivery
2745                 attempt completes.  Problem noted by Max France of AlphaNet.
2746                 Fix from Neil Rickert of Northern Illinois University.
2747         Deal correctly with MaxMessageSize restriction if message size is
2748                 greater than 2^31.  Problem noted by Tim "Darth Dice" Bosserman
2749                 of EarthLink.
2750         Turn off queue checkpointing if CheckpointInterval is set to zero.
2751         Treat an empty home directory (from getpw*() or $HOME) as
2752                 non-existent instead of treating it as /.  Problem noted by
2753                 Todd C. Miller of Courtesan Consulting.
2754         Don't drop duplicate headers when reading a queued item.  Problem
2755                 noted by Motonori Nakamura of Kyoto University.
2756         Avoid bogus error text when logging the savemail panic "cannot
2757                 save rejected email anywhere".  Problem noted by Marc G.
2758                 Fournier of Acadia University.
2759         If an LDAP search fails because the LDAP server went down, close
2760                 the map so subsequent searches reopen the map.  If there are
2761                 multiple LDAP servers, the down server will be skipped and
2762                 one of the others may be able to take over.
2763         Set the ${load_avg} macro to the current load average, not the
2764                 previous load average query result.
2765         If a non-optional map used in a check_* ruleset can't be opened,
2766                 return a temporary failure to the remote SMTP client
2767                 instead of ignoring the map.  Problem noted by Allan E
2768                 Johannesen of Worcester Polytechnic Institute.
2769         Avoid a race condition when queuing up split envelopes by saving
2770                 the split envelopes before the original envelope.
2771         Fix a bug in the PH_MAP code which caused mail to bounce instead of
2772                 defer if the PH server could not be contacted.  From Mark
2773                 Roth of the University of Illinois at Urbana-Champaign.
2774         Prevent QueueSortOrder=Filename from interfering with -qR, -qS, and
2775                 ETRN.  Problem noted by Erik R. Leo of SoVerNet.
2776         Change error code for unrecognized parameters to the SMTP MAIL and
2777                 RCPT commands from 501 to 555 per RFC 1869.  Problem
2778                 reported to Postfix by Robert Norris of Monash University.
2779         Prevent overwriting the argument of -B on certain OS.  Problem
2780                 noted by Matteo Gelosa of I.NET S.p.A.
2781         Use the proper routine for freeing memory with Netscape's LDAP
2782                 client libraries.  Patch from Paul Hilchey of the
2783                 University of British Columbia.
2784         Portability:
2785                 Move the NETINET6 define to devtools/OS/SunOS.5.{8,9}
2786                         instead of defining it in conf.h so users can
2787                         override the setting.  Suggested by
2788                         Henrik Nordstrom of Ericsson.
2789                 On HP-UX 10.X and 11.X, use /usr/sbin/sendmail instead of
2790                         /usr/lib/sendmail for rmail and vacation.  From
2791                         Jeff A. Earickson of Colby College.
2792                 On HP-UX 11.X, use /usr/sbin instead of /usr/libexec (which
2793                         does not exist).  From Jeff A. Earickson of Colby
2794                         College.
2795                 Avoid using the UCB subsystem on NCR MP-RAS 3.x.  From
2796                         Tom Moore of NCR.
2797                 NeXT 3.X and 4.X installs man pages in /usr/man.  From
2798                         Hisanori Gogota of NTT/InterCommunicationCenter.
2799                 Solaris 8 and later include /var/run.  The default PID file
2800                         location is now /var/run/  From John
2801                         Beck of Sun Microsystems.
2802                 SFIO includes snprintf() for those operating systems
2803                         which do not.  From Todd C. Miller of Courtesan
2804                         Consulting.
2805         CONFIG: Use the result of _CERT_REGEX_SUBJECT_ not {cert_subject}.
2806                 Problem noted by Kaspar Brand of futureLab AG.
2807         CONFIG: Change 553 SMTP reply code to 501 to avoid problems with
2808                 errors in the MAIL address.
2809         CONFIG: Fix FEATURE(nouucp) usage in example .mc files.  Problem
2810                 noted by Ron Jarrell of Virginia Tech.
2811         CONFIG: Add support for Solaris 8 (and later) as OSTYPE(solaris8).
2812                 Contributed by John Beck of Sun Microsystems.
2813         CONFIG: Set confFROM_HEADER such that the mail hub can possibly add
2814                 GECOS information for an address.  This more closely
2815                 matches pre-8.10 nullclient behavior.  From Per Hedeland of
2816                 Ericsson.
2817         CONFIG: Fix MODIFY_MAILER_FLAGS(): apply the flag modifications for
2818                 SMTP to all *smtp* mailers and those for RELAY to the relay
2819                 mailer as described in cf/README.
2820         MAIL.LOCAL: Open the mailbox as the recipient not root so quotas
2821                 are obeyed.  Problem noted by Damian Kuczynski of NIK.
2822         MAKEMAP: Do not change a map's owner to the TrustedUser if using
2823                 makemap to 'unmake' the map.
2824         RMAIL: Avoid overflowing the list of recipients being passed to
2825                 sendmail.
2826         RMAIL: Invoke sendmail with '-G' to indicate this is a gateway
2827                 submission.  Problem noted by Kari Hurtta of the Finnish
2828                 Meteorological Institute.
2829         VACATION: Read the complete message to avoid "broken pipe" signals.
2830         VACATION: Do not cut off vacation.msg files which have a single
2831                 dot as the only character on the line.
2832         New Files:
2833                 cf/ostype/solaris8.m4
2835 8.11.0/8.11.0   2000/07/19
2836         SECURITY: If sendmail is installed as a non-root set-user-ID binary
2837                 (not the normal case), some operating systems will still
2838                 keep a saved-uid of the effective-uid when sendmail tries
2839                 to drop all of its privileges.  If sendmail needs to drop
2840                 these privileges and the operating system doesn't set the
2841                 saved-uid as well, exit with an error.  Problem noted by
2842                 Kari Hurtta of the Finnish Meteorological Institute.
2843         SECURITY: sendmail depends on snprintf() NUL terminating the string
2844                 it populates.  It is possible that some broken
2845                 implementations of snprintf() exist that do not do this.
2846                 Systems in this category should compile with
2847                 -DSNPRINTF_IS_BROKEN=1.  Use test/t_snprintf.c to test your
2848                 system and report broken implementations to
2849        and your OS vendor.  Problem
2850                 noted by Slawomir Piotrowski of TELSAT GP.
2851         Support SMTP Service Extension for Secure SMTP (RFC 2487) (STARTTLS).
2852                 Implementation influenced by the example programs of
2853                 OpenSSL and the work of Lutz Jaenicke of TU Cottbus.
2854         Add new STARTTLS related options CACERTPath, CACERTFile,
2855                 ClientCertFile, ClientKeyFile, DHParameters, RandFile,
2856                 ServerCertFile, and ServerKeyFile.  These are documented in
2857                 cf/README and doc/op/op.*.
2858         New STARTTLS related macros: ${cert_issuer}, ${cert_subject},
2859                 ${tls_version}, ${cipher}, ${cipher_bits}, ${verify},
2860                 ${server_name}, and ${server_addr}.  These are documented
2861                 in cf/README and doc/op/op.*.
2862         Add support for the Entropy Gathering Daemon (EGD) for better
2863                 random data.
2864         New DontBlameSendmail option InsufficientEntropy for systems which
2865                 don't properly seed the PRNG for OpenSSL but want to
2866                 try to use STARTTLS despite the security problems.
2867         Support the security layer in SMTP AUTH for mechanisms which
2868                 support encryption.  Based on code contributed by Tim
2869                 Martin of CMU.
2870         Add new macro ${auth_ssf} to reflect the SMTP AUTH security
2871                 strength factor.
2872         LDAP's -1 (single match only) flag was not honored if the -z
2873                 (delimiter) flag was not given.  Problem noted by ST Wong of
2874                 the Chinese University of Hong Kong.  Fix from Mark Adamson
2875                 of CMU.
2876         Add more protection from accidentally tripping OpenLDAP 1.X's
2877                 ld_errno == LDAP_DECODING_ERROR hack on ldap_next_attribute().
2878                 Suggested by Kurt Zeilenga of OpenLDAP.
2879         Fix the default family selection for DaemonPortOptions.  As
2880                 documented, unless a family is specified in a
2881                 DaemonPortOptions option, "inet" is the default.  It is
2882                 also the default if no DaemonPortOptions value is set.
2883                 Therefore, IPv6 users should configure additional sockets
2884                 by adding DaemonPortOptions settings with Family=inet6 if
2885                 they wish to also listen on IPv6 interfaces.  Problem noted
2886                 by Jun-ichiro itojun Hagino of the KAME Project.
2887         Set ${if_family} when setting ${if_addr} and ${if_name} to reflect
2888                 the interface information for an outgoing connection.
2889                 Not doing so was creating a mismatch between the socket
2890                 family and address used in subsequent connections if the
2891                 M=b modifier was set in DaemonPortOptions.  Problem noted
2892                 by John Beck of Sun Microsystems.
2893         If DaemonPortOptions modifier M=b is used, determine the socket
2894                 family based on the IP address.  ${if_family} is no longer
2895                 persistent (i.e., saved in qf files).  Patch from John Beck
2896                 of Sun Microsystems.
2897         sendmail 8.10 and 8.11 reused the ${if_addr} and ${if_family}
2898                 macros for both the incoming interface address/family and
2899                 the outgoing interface address/family.  In order for M=b
2900                 modifier in DaemonPortOptions to work properly, preserve
2901                 the incoming information in the queue file for later
2902                 delivery attempts.
2903         Use SMTP error code and enhanced status code from check_relay in
2904                 responses to commands.  Problem noted by Jeff Wasilko of
2906         Add more vigilance in checking for putc() errors on output streams
2907                 to protect from a bug in Solaris 2.6's putc().  Problem
2908                 noted by Graeme Hewson of Oracle.
2909         The LDAP map -n option (return attribute names only) wasn't working.
2910                 Problem noted by Ajay Matia.
2911         Under certain circumstances, an address could be listed as deferred
2912                 but would be bounced back to the sender as failed to be
2913                 delivered when it really should have been queued.  Problem
2914                 noted by Allan E Johannesen of Worcester Polytechnic Institute.
2915         Prevent a segmentation fault in a child SMTP process from getting
2916                 the SMTP transaction out of sync.  Problem noted by Per
2917                 Hedeland of Ericsson.
2918         Turn off RES_DEBUG if SFIO is defined unless SFIO_STDIO_COMPAT
2919                 is defined to avoid a core dump due to incompatibilities
2920                 between sfio and stdio.  Problem noted by Neil Rickert
2921                 of Northern Illinois University.
2922         Don't log useless envelope ID on initial connection log.  Problem
2923                 noted by Kari Hurtta of the Finnish Meteorological Institute.
2924         Convert the free disk space shown in a control socket status query
2925                 to kilobyte units.
2926         If TryNullMXList is True and there is a temporary DNS failure
2927                 looking up the hostname, requeue the message for a later
2928                 attempt.  Problem noted by Ari Heikkinen of Pohjois-Savo
2929                 Polytechnic.
2930         Under the proper circumstances, failed connections would be recorded
2931                 as "Bad file number" instead of "Connection failed" in the
2932                 queue file and persistent host status.  Problem noted by
2933                 Graeme Hewson of Oracle.
2934         Avoid getting into an endless loop if a non-hoststat directory exists
2935                 within the hoststatus directory (e.g., lost+found).
2936                 Patch from Valdis Kletnieks of Virginia Tech.
2937         Make sure Timeout.queuereturn=now returns a bounce message to the
2938                 sender.  Problem noted by Per Hedeland of Ericsson.
2939         If a message data file can't be opened at delivery time, panic and
2940                 abort the attempt instead of delivering a message that
2941                 states "<<< No Message Collected >>>".
2942         Fixup the GID checking code from 8.10.2 as it was overly
2943                 restrictive.  Problem noted by Mark G. Thomas of Mark
2944                 G. Thomas Consulting.
2945         Preserve source port number instead of replacing it with the ident
2946                 port number (113).
2947         Document the queue status characters in the mailq man page.
2948                 Suggested by Ulrich Windl of the Universitat Regensburg.
2949         Process queued items in which none of the recipient addresses have
2950                 host portions (or there are no recipients).  Problem noted
2951                 by Valdis Kletnieks of Virginia Tech.
2952         If a cached LDAP connection is used for multiple maps, make sure
2953                 only the first to open the connection is allowed to close
2954                 it so a later map close doesn't break the connection for
2955                 other maps.  Problem noted by Wolfgang Hottgenroth of UUNET.
2956         Netscape's LDAP libraries do not support Kerberos V4
2957                 authentication.  Patch from Rainer Schoepf of the
2958                 University of Mainz.
2959         Provide workaround for inconsistent handling of data passed
2960                 via callbacks to Cyrus SASL prior to version 1.5.23.
2961         Mention ENHANCEDSTATUSCODES in the SMTP HELP helpfile.  Omission
2962                 noted by Ulrich Windl of the Universitat Regensburg.
2963         Portability:
2964                 Add the ability to read IPv6 interface addresses into class
2965                         'w' under FreeBSD (and possibly others).  From Jun
2966                         Kuriyama of IMG SRC, Inc. and the FreeBSD Project.
2967                 Replace code for finding the number of CPUs on HPUX.
2968                 NCRUNIX MP-RAS 3.02 SO_REUSEADDR socket option does not
2969                         work properly causing problems if the accept()
2970                         fails and the socket needs to be reopened.  Patch
2971                         from Tom Moore of NCR.
2972                 NetBSD uses a .0 extension of formatted man pages.  From
2973                         Andrew Brown of Crossbar Security.
2974                 Return to using the IPv6 AI_DEFAULT flag instead of AI_V4MAPPED
2975                         for calls to getipnodebyname().  The Linux
2976                         implementation is broken so AI_ADDRCONFIG is stripped
2977                         under Linux.  From John Beck of Sun Microsystems and
2978                         John Kennedy of Cal State University, Chico.
2979         CONFIG: Catch invalid addresses containing a ',' at the wrong place.
2980                 Patch from Neil Rickert of Northern Illinois University.
2981         CONFIG: New variables for the new sendmail options:
2982                 confCACERT_PATH                 CACERTPath
2983                 confCACERT                      CACERTFile
2984                 confCLIENT_CERT                 ClientCertFile
2985                 confCLIENT_KEY                  ClientKeyFile
2986                 confDH_PARAMETERS               DHParameters
2987                 confRAND_FILE                   RandFile
2988                 confSERVER_CERT                 ServerCertFile
2989                 confSERVER_KEY                  ServerKeyFile
2990         CONFIG: Provide basic rulesets for TLS policy control and add new
2991                 tags to the access database to support these policies.  See
2992                 cf/README for more information.
2993         CONFIG: Add TLS information to the Received: header.
2994         CONFIG: Call tls_client ruleset from check_mail in case it wasn't
2995                 called due to a STARTTLS command.
2996         CONFIG: If TLS_PERM_ERR is defined, TLS related errors are permanent
2997                 instead of temporary.
2998         CONFIG: FEATURE(`relay_hosts_only') didn't work in combination with
2999                 the access map and relaying to a domain without using a To:
3000                 tag.  Problem noted by Mark G. Thomas of Mark G. Thomas
3001                 Consulting.
3002         CONFIG: Set confEBINDIR to /usr/sbin to match the devtools entry in
3003                 OSTYPE(`linux') and OSTYPE(`mklinux').  From Tim Pierce of
3005         CONFIG: Make sure FEATURE(`nullclient') doesn't use aliasing and
3006                 forwarding to make it as close to the old behavior as
3007                 possible.  Problem noted by George W. Baltz of the
3008                 University of Maryland.
3009         CONFIG: Added OSTYPE(`darwin') for Mac OS X and Darwin users.  From
3010                 Wilfredo Sanchez of Apple Computer, Inc.
3011         CONFIG: Changed the map names used by FEATURE(`ldap_routing') from
3012                 ldap_mailhost and ldap_mailroutingaddress to ldapmh and
3013                 ldapmra as underscores in map names cause problems if
3014                 underscore is in OperatorChars.  Problem noted by Bob Zeitz
3015                 of the University of Alberta.
3016         CONFIG: Apply blacklist_recipients also to hosts in class {w}.
3017                 Patch from Michael Tratz of Esosoft Corporation.
3018         CONFIG: Use A=TCP ... instead of A=IPC ... in SMTP mailers.
3019         CONTRIB: Add to create symbolic links to the hash
3020                 of X.509 certificates.
3021         CONTRIB:  More protection from special characters;
3022                 treat special shells as root aliases; skip entries where the
3023                 GECOS full name and username match.  From Ulrich Windl of the
3024                 Universitat Regensburg.
3025         CONTRIB: Add missing last_modified_time method and fix a
3026                 typo.  Patch from Graeme Hewson of Oracle.
3027         CONTRIB: Improve handling of a race between re-mqueue
3028                 and sendmail.  Patch from Graeme Hewson of Oracle.
3029         CONTRIB: Don't exit(0) at end so can be called as
3030                 subroutine Patch from Graeme Hewson of Oracle.
3031         CONTRIB: Add (move old mail messages between queues by
3032                 calling and movemail.conf (configuration
3033                 script for  From Graeme Hewson of Oracle.
3034         CONTRIB: Add cidrexpand (expands CIDR blocks as a preprocessor to
3035                 makemap).  From Derek J. Balling of Yahoo,Inc.
3036         DEVTOOLS: INSTALL_RAWMAN installation option mistakenly applied any
3037                 extension modifications (e.g., MAN8EXT) to the installation
3038                 target.  Patch from James Ralston of Carnegie Mellon
3039                 University.
3040         DEVTOOLS: Add support for SunOS 5.9.
3041         DEVTOOLS: New option confLN contains the command used to create
3042                 links.
3043         LIBSMDB: Berkeley DB 2.X and 3.X errors might be lost and not
3044                 reported.
3045         MAIL.LOCAL: DG/UX portability.  Problem noted by Tim Boyer of
3046                 Denman Tire Corporation.
3047         MAIL.LOCAL: Prevent a possible DoS attack when compiled with
3048                 -DCONTENTLENGTH.  Based on patch from 3APA3A@SECURITY.NNOV.RU.
3049         MAILSTATS: Fix usage statement (-p and -o are optional).
3050         MAKEMAP: Change man page layout as workaround for problem with nroff
3051                 and -man on Solaris 7.  Patch from Larry Williamson.
3052         RMAIL: AIX 4.3 has snprintf().  Problem noted by David Hayes of
3053                 Black Diamond Equipment, Limited.
3054         RMAIL: Prevent a segmentation fault if the incoming message does not
3055                 have a From line.
3056         VACATION: Read all of the headers before deciding whether or not
3057                 to respond instead of stopping after finding recipient.
3058         Added Files:
3059                 cf/ostype/darwin.m4
3060                 contrib/cidrexpand
3061                 contrib/
3062                 contrib/movemail.conf
3063                 contrib/
3064                 devtools/OS/SunOS.5.9
3065                 test/t_snprintf.c
3067 8.10.2/8.10.2   2000/06/07
3068         SECURITY: Work around broken Linux setuid() implementation.
3069                 On Linux, a normal user process has the ability to subvert
3070                 the setuid() call such that it is impossible for a root
3071                 process to drop its privileges.  Problem noted by Wojciech
3072                 Purczynski of
3073         SECURITY: Add more vigilance around set*uid(), setgid(), setgroups(),
3074                 initgroups(), and chroot() calls.
3075         Added Files:
3076                 test/t_setuid.c
3078 8.10.1/8.10.1   2000/04/06
3079         SECURITY: Limit the choice of outgoing (client-side) SMTP
3080                 Authentication mechanisms to those specified in