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