1			SENDMAIL RELEASE NOTES
2	     @(#)RELEASE_NOTES	8.6.11.1 (Berkeley) 03/08/95
3
4This listing shows the version of the sendmail binary, the version
5of the sendmail configuration files, the date of release, and a
6summary of the changes in that release.
7
88.6.11/8.6.11	95/03/08
9	The ``possible attack'' message would be logged more often
10		than necessary if you are using Pine as a user agent.
11	The wrong host would be reported in the ``possible attack''
12		message when attempted from IDENT.
13	In some cases the syslog buffer could be overflowed when
14		reporting the ``possible attack'' message.  This can
15		cause denial of service attacks.  Truncate the message
16		to 80 characters to prevent this problem.
17	When reading the IDENT response a loop is needed around the
18		read from the network to ensure that you don't get
19		partial lines.
20	Password entries without any shell listed (that is, a null
21		shell) wouldn't match as "ok".  Problem noted by
22		Rob McMahon.
23	When running BIND 4.9.x a problem could occur because the
24		_res.options field is initialized differently than it
25		was historically -- this requires that sendmail call
26		res_init before it tweaks any bits.
27	Fix an incompatibility in openxscript() between the file open mode
28		and the stdio mode passed to fdopen.  This caused UnixWare
29		2.0 to have conniptions.  Fix from Martin Sohnius of
30		Novell Labs Europe.
31	Fix problem with static linking of local getopt routine when
32		using GNU's ld command.  Fix from John Kennedy of
33		Cal State Chico.
34	It was possible to turn off privacy flags.  Problem noted by
35		*Hobbit*.
36	Be more paranoid about writing files.  Suggestions by *Hobbit*
37		and Liudvikas Bukys.
38	MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular)
39		from Spider Boardman.
40	CONFIG: No changes (version number only, to keep it in sync
41		with the binaries).
42
438.6.10/8.6.10	95/02/10
44	SECURITY: Diagnose bogus values to some command line flags that
45		could allow trash to get into headers and qf files.
46	Validate the name of the user returned by the IDENT protocol.
47		Some systems that really dislike IDENT send intentionally
48		bogus information.  Problem pointed out by Michael Bushnell
49		of the Free Software Foundation.  Has some security
50		implications.
51	Fix a problem causing error messages about DNS problems when
52		the host name contained a percent sign to act oddly
53		because it was passed as a printf-style format string.
54		In some cases this could cause core dumps.
55	Avoid possible buffer overrun in returntosender() if error
56		message is quite ling.  From Fletcher Mattox of the
57		University of Texas.
58	Fix a problem that would silently drop "too many hops" error
59		messages if and only if you were sending to an alias.
60		From Jon Giltner of the University of Colorado and
61		Dan Harton of Oak Ridge National Laboratory.
62	Fix a bug that caused core dumps on some systems if -d11.2 was
63		set and e->e_message was null.  Fix from Bruce Nagel of
64		Data General.
65	Fix problem that can still cause df files to be left around
66		after "hop count exceeded" messages.  Fix from Andrew
67		Chang and Shau-Ping Lo of SunSoft.
68	Fix a problem that can cause buffer overflows on very long
69		user names (as might occur if you piped to a program
70		with a lot of arguments).
71	Avoid returning an error and re-queueing if the host signature
72		is null; this can occur on addresses like ``user@.''.
73		Problem noted by Wesley Craig and the University of
74		Michigan.
75	Avoid possible calls to malloc(0) if MCI caching is turned
76		off.  Bug fix from Pierre David of the Laboratoire
77		Parallelisme, Reseaux, Systemes et Modelisation (PRiSM),
78		Universite de Versailles - St Quentin, and Jacky
79		Thibault.
80	Make a local copy of the line being sent via senttolist() -- in
81		some cases, buffers could get trashed by map lookups
82		causing it to do unexpected things.  This also simplifies
83		some of the map code.
84	CONFIG: No changes (version number only, to keep it in sync
85		with the binaries).
86
878.6.9/8.6.9	94/04/19
88	Do all mail delivery completely disconnected from any terminal.
89		This provides consistency with daemon delivery and
90		may have some security implications.
91	Make sure that malloc doesn't get called with zero size,
92		since that fails on some systems.  Reported by Ed
93		Hill of the University of Iowa.
94	Fix multi-line values for $e (SMTP greeting message).  Reported
95		by Mike O'Connor of Ford Motor Company.
96	Avoid syserr if no NIS domain name is defined, but the map it
97		is trying to open is optional.  From Win Bent of USC.
98	Changes for picky compilers from Ed Gould of Digital Equipment.
99	Hesiod support for UDB from Todd Miller of the University of
100		Colorado.  Use "hesiod" as the service name in the U
101		option.
102	Fix a problem that failed to set the "authentic" host name (that
103		is, the one derived from the socket info) if you called
104		sendmail -bs from inetd.  Based on code contributed by
105		Todd Miller (this problem was also reported by Guy Helmer
106		of Dakota State University).  This also fixes a related
107		problem reported by Liudvikas Bukys of the University of
108		Rochester.
109	Parameterize "nroff -h" in all the Makefiles so people with
110		variant versions can use them easily.  Suggested by
111		Peter Collinson of Hillside Systems.
112	SMTP "MAIL" commands with multiple ESMTP parameters required two
113		spaces between parameters instead of one.  Reported by
114		Valdis Kletnieks of Virginia Tech.
115	Reduce the number of system calls during message collection by
116		using global timeouts around the collect() loop.  This
117		code was contributed by Eric Wassenaar.
118	If the initial hostname name gathering results in a name
119		without a dot (usually caused by NIS misconfiguration)
120		and BIND is compiled in, directly access DNS to get
121		the canonical name.  This should make life easier for
122		Solaris systems.  If it still can't be resolved, and
123		if the name server is listed as "required", try again
124		in 30 seconds.  If that also fails, exit immediately to
125		avoid bogus "config error: mail loops back to myself"
126		messages.
127	Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error
128		message to explain how much space was available and
129		sound a bit less threatening.  Suggested by Stan Janet
130		of the National Institute of Standards and Technology.
131	If mail is delivered to an alias that has an owner, deliver any
132		requested return-receipt immediately, and strip the
133		Return-Receipt-To: header from the subsequent message.
134		This prevents a certain class of denial of service
135		attack, arguably gives more reasonable semantics, and
136		moves things more towards what will probably become a
137		network standard.  Suggested by Christopher Davis of
138		Kapor Enterprises.
139	Add a "noreceipts" privacy flag to turn off all return receipts
140		without recompiling.
141	Avoid printing ESMTP parameters as part of the error message
142		if there are errors during parsing.  This change is
143		purely cosmetic.
144	Avoid sending out error messages during the collect phase of
145		SMTP; there is an MVS mailer from UCLA that gets
146		confused by this.  Of course, I think it's their bug....
147	Check for the $j macro getting undefined, losing a dot, or getting
148		lost from $=w in the daemon before accepting a connection;
149		if it is, it dumps state, prints a LOG_ALERT message,
150		and drops core for debugging.  This is an attempt to
151		track down a bug that I thought was long since gone.
152		If you see this, please forward the log fragment to
153		sendmail@CS.Berkeley.EDU.
154	Change OLD_NEWDB from a #ifdef to a #if so it can be turned off
155		with -DOLD_NEWDB=0 on the command line.  From Christophe
156		Wolfhugel.
157	Instead of trying to truncate the listen queue for the server
158		SMTP port when the load average is too high, just close
159		the port completely and reopen it later as needed.
160		This ensures that the other end gets a quick "connection
161		refused" response, and that the connection can be
162		recovered later.  In particular, some socket emulations
163		seem to get confused if you tweak the listen queue
164		size around and can never start listening to connections
165		again.  The down side is that someone could start up
166		another daemon process in the interim, so you could
167		have multiple daemons all not listening to connections;
168		this could in turn cause the sendmail.pid file to be
169		incorrect.  A better approach might be to accept the
170		connection and give a 421 code, but that could break
171		other mailers in mysterious ways and have paging behaviour
172		implications.
173	Fix a glitch in TCP-level debugging that caused flag 16.101 to
174		set debugging on the wrong socket.  From Eric Wassenaar.
175	When creating a df* temporary file, be sure you truncate any
176		existing data in the file -- otherwise system crashes
177		and the like could result in extra data being sent.
178	DOC: Replace the CHANGES-R5-R8 readme file with a paper in the
179		doc directory.  This includes some additional
180		information.
181	CONFIG: change UUCP rules to never add $U! or $k! on the front
182		of recipient envelope addresses.  This should have been
183		handled by the $&h trick, but broke if people were
184		mixing domainized and UUCP addresses.  They should
185		probably have converted all the way over to uucp-uudom
186		instead of uucp-{new,old}, but the failure mode was to
187		loop the mail, which was bad news.
188	Portability fixes:
189		Newer BSDI systems (several people).
190		Older BSDI systems from Christophe Wolfhugel.
191		Intergraph CLIX, from Paul Southworth of CICNet.
192		UnixWare, from Evan Champion.
193		NetBSD from Adam Glass.
194		Solaris from Quentin Campbell of the University of
195			Newcastle upon Tyne.
196		IRIX from Dean Cookson and Bill Driscoll of Mitre
197			Corporation.
198		NCR 3000 from Kevin Darcy of Chrysler Corporation.
199		SunOS (it has setsid() and setvbuf() calls) from
200			Jonathan Kamens of OpenVision Technologies.
201		HP-UX from Tor Lillqvist.
202	New Files:
203		src/Makefile.CLIX
204		src/Makefile.NCR3000
205		doc/changes/Makefile
206		doc/changes/changes.me
207		doc/changes/changes.ps
208
2098.6.8/8.6.6	94/03/21
210	SECURITY: it was possible to read any file as root using the
211		E (error message) option.  Reported by Richard Jones;
212		fixed by Michael Corrigan and Christophe Wolfhugel.
213
2148.6.7/8.6.6	94/03/14
215	SECURITY: it was possible to get root access by using wierd
216		values to the -d flag.  Thanks to Alain Durand of
217		INRIA for forwarding me the notice from the bugtraq
218		list.
219
2208.6.6/8.6.6	94/03/13
221	SECURITY: the ability to give files away on System V-based
222		systems proved dangerous -- don't run as the owner
223		of a :include: file on a system that allows giveaways.
224		Unfortunately, this also applies to determining a
225		valid shell.
226	IMPORTANT: Previous versions weren't expiring old connections
227		in the connection cache for a long time under some
228		circumstances.  This could result in resource exhaustion,
229		both at your end and at the other end.  This checks the
230		connections for timeouts much more frequently.  From
231		Doug Anderson of NCSC.
232	Fix a glitch that snuck in that caused programs to be run as
233		the sender instead of the recipient if the mail was
234		from a local user to another local user.  From
235		Motonori Nakamura of Kyoto University.
236	Fix "wildcard" on /etc/shell matching -- instead of looking
237		for "*", look for "/SENDMAIL/ANY/SHELL/".  From
238		Bryan Costales of ICSI.
239	Change the method used to declare the "statfs" availability;
240		instead of HASSTATFS and/or HASUSTAT with a ton of
241		tweaking in conf.c, there is a single #define called
242		SFS_TYPE which takes on one of six values (SFS_NONE
243		for no statfs availability, SFS_USTAT for the ustat(2)
244		syscall, SFS_4ARGS for a four argument statfs(2) call,
245		and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument
246		statfs(2) call with the declarations in <sys/vfs.h>,
247		<sys/mount.h>, or <sys/statfs.h> respectively).
248	Fix glitch in NetInfo support that could return garbage if
249		there was no "/locations/sendmail" property.  From
250		David Meyer of the University of Virginia.
251	Change HASFLOCK from defined/not-defined to a 0/1 definition
252		to allow Linux to turn it off even though it is a
253		BSD-like system.
254	Allow setting of "ident" timeout to zero to turn off the ident
255		protocol entirely.
256	Make 7-bit stripping local to a connection (instead of to a
257		mailer); this allows you to specify that SMTP is a
258		7-bit channel, but revert to 8-bit should it advertise
259		that it supports 8BITMIME.  You still have to specify
260		mailer flag 7 to get this stripping at all.
261	Improve makesendmail script so it handles more cases automatically.
262	Tighten up restrictions on taking ownership of :include: files
263		to avoid problems on systems that allow you to give away
264		files.
265	Fix a problem that made it impossible to rebuild the alias
266		file if it was on a read-only file system.  From
267		Harry Edmon of the University of Washington.
268	Improve MX randomization function.  From John Gardiner Myers
269		of CMU.
270	Fix a minor glitch causing a bogus message to be printed (used
271		%s instead of %d in a printf string for the line number)
272		when a bad queue file was read.  From Harry Edmon.
273	Allow $s to remain NULL on locally generated mail.  I'm not
274		sure this is necessary, but a lot of people have complained
275		about it, and there is a legitimate question as to whether
276		"localhost" is legal as an 822-style domain.
277	Fix a problem with very short line lengths (mailer L= flag) in
278		headers.  This causes a leading space to be added onto
279		continuation lines (including in the body!), and also
280		tries to wrap headers containing addresses (From:, To:,
281		etc) intelligently at the shorter line lengths.  Problem
282		Reported by Lars-Johan Liman of SUNET Operations Center.
283	Log the real user name when logging syserrs, since these can have
284		security implications.  Suggested by several people.
285	Fix address logging of cached connections -- it used to always
286		log the numeric address as zero.  This is a somewhat
287		bogus implementation in that it does an extra system
288		call, but it should be an inexpensive one.  Fix from
289		Motonori Nakamura.
290	Tighten up handling of short syslog buffers even more -- there
291		were cases where the outgoing relay= name was too long
292		to share a line with delay= and mailer= logging.
293	Limit the overhead on split envelopes to one open file descriptor
294		per envelope -- previously the overhead was three
295		descriptors.  This was in response to a problem reported
296		by P{r (Pell) Emanuelsson.
297	Fixes to better handle the case of unexpected connection closes;
298		this redirects the output to the transcript so the info
299		is not lost.  From Eric Wassenaar.
300	Fix potential string overrun if you macro evaluate a string that
301		has a naked $ at the end.  Problem noted by James Matheson
302		<jmrm@eng.cam.ac.uk>.
303	Make default error number on $#error messages 553 (``Requested
304		action not taken: mailbox name not allowed'') instead of
305		501 (``Syntax error in parameters or arguments'') to
306		avoid bogus "protocol error" messages.
307	Strip off any existing trailing dot on names during $[ ... $]
308		lookup.  This prevents it from ending up with two dots
309		on the end of dot terminated names.  From Wesley Craig
310		of the University of Michigan and Bryan Costales of ICSI.
311	Clean up file class reading so that the debugging information is
312		more informative.  It hadn't been using setclass, so you
313		didn't see the class items being added.
314	Avoid core dump if you are running a version of sendmail where
315		NIS is compiled in, and you specify an NIS map, but
316		NIS is not running.  Fix from John Oleynick of
317		Rutgers.
318	Diagnose bizarre case where res_search returns a failure value,
319		but sets h_errno to a success value.
320	Make sure that "too many hops" messages are considered important
321		enough to send an error to the Postmaster (that is, the
322		address specified in the P option).  This fix should
323		help problems that cause the df file to be left around
324		sometimes -- unfortunately, I can't seem to reproduce
325		the problem myself.
326	Avoid core dump (null pointer reference) on EXPN command; this
327		only occurred if your log level was set to 10 or higher
328		and the target account was an alias or had a .forward file.
329		Problem noted by Janne Himanka.
330	Avoid "denial of service" attacks by someone who is flooding your
331		SMTP port with bad commands by shutting the connection
332		after 25 bad commands are issued.  From Kyle Jones of
333		UUNET.
334	Fix core dump on error messages with very long "to" buffers;
335		fmtmsg overflows the message buffer.  Fixed by trimming
336		the to address to 203 characters.  Problem reported by
337		John Oleynick.
338	Fix configuration for HASFLOCK -- there were some spots where
339		a #ifndef was incorrectly #ifdef.  Pointed out by
340		George Baltz of the University of Maryland.
341	Fix a typo in savemail() that could cause the error message To:
342		lists to be incorrect in some places.  From Motonori
343		Nakamura.
344	Fix a glitch that can cause duplicate error messages on split
345		envelopes where an address on one of the lists has a
346		name server failure.  Fix from Voradesh Yenbut of the
347		University of Washington.
348	Fix possible bogus pointer reference on ESMTP parameters that
349		don't have an ``=value'' part.
350	CNAME loops caused an error message to be generated, but also
351		re-queued the message.  Changed to just re-queue the
352		message (it's really hard to just bounce it because
353		of the wierd way the name server works in the presence
354		of CNAME loops).  Problem noted by James M.R.Matheson
355		of Cambridge University.
356	Avoid giving ``warning: foo owned process doing -bs'' messages
357		if they use ``MAIL FROM:<foo>'' where foo is their true
358		user name.  Suggested by Andreas Stolcke of ICSI.
359	Change the NAMED_BIND compile flag to be a 0/1 flag so you can
360		override it easily in the Makefile -- that is, you can
361		turn it off using -DNAMED_BIND=0.
362	If a gethostbyname(...) of an address with a trailing dot fails,
363		try it without the trailing dot.  This is because if
364		you have a version of gethostbyname() that falls back
365		to NIS or the /etc/hosts file it will fail to find
366		perfectly reasonable names that just don't happen to
367		be dot terminated in the hosts file.  You don't want to
368		strip the dot first though because we're trying to ensure
369		that country names that match one of your subdomains get
370		a chance.
371	PRALIASES: fix bogus output on non-null-terminated strings.
372		From Bill Gianopoulos of Raytheon.
373	CONFIG: Avoid rewriting anything that matches $w to be $j.
374		This was in code intended to only catch the self-literal
375		address (that is, [1.2.3.4], where 1.2.3.4 is your
376		IP address), but the code was broken.  However, it will
377		still do this if $M is defined; this is necessary to
378		get client configurations to work (sigh).  Note that this
379		means that $M overrides :mailname entries in the user
380		database!  Problem noted by Paul Southworth.
381	CONFIG: Fix definition of Solaris help file location.  From
382		Steve Cliffe <steve@gorgon.cs.uow.edu.au>.
383	CONFIG: Fix bug that broke news.group.USENET mappings.
384	CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX,
385		and USENET_MAILER_MAX to tweak the maximum message
386		size for various mailers.
387	CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0]
388		instead of assuming that it is "inews" for consistency
389		with other mailers.  From Michael Corrigan of UC San Diego.
390	CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB,
391		qualify the address in the SMTP envelope as user@{relay|hub}
392		instead of user@$j.  From Bill Wisner of The Well.
393	CONFIG: Fix route-addr syntax in nullrelay configuration set.
394	CONFIG: Don't turn off case mapping of user names in the local
395		mailer for IRIX.  This was different than most every other
396		system.
397	CONFIG: Avoid infinite loops on certainly list:; syntaxes in
398		envelope.  Noted by Thierry Besancon
399		<besancon@excalibur.ens.fr>.
400	CONFIG: Don't include -z by default on uux line -- most systems
401		don't want it set by default.  Pointed out by Philippe
402		Michel of Thomson CSF.
403	CONFIG: Fix some bugs with mailertables -- for example, if your
404		host name was foo.bar.ray.com and you matched against
405		".ray.com", the old implementation bound %1 to "bar"
406		instead of "foo.bar".  Also, allow "." in the mailertable
407		to match anything -- essentially, take over SMART_HOST.
408		This also moves matching of explicit local host names
409		before the mailertable so they don't have to be special
410		cased in the mailertable data.  Reported by Bill
411		Gianopoulos of Raytheon; the fix for the %1 binding
412		problem was contributed by Nicholas Comanos of the
413		University of Sydney.
414	CONFIG: Don't include "root" in class $=L (users to deliver
415		locally, even if a hub or relay exists) by default.
416		This is because of the known bug where definition of
417		both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore
418		both and deliver into the local mailbox.
419	CONFIG: Move up bitdomain and uudomain handling so that they
420		are done before .UUCP class matching; uudomain was
421		reported as ineffective before.  This also frees up
422		diversion 8 for future use.  Problem reported by Kimmo
423		Suominen.
424	CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4])
425		into host names.  As pointed out by Jonathan Kamens,
426		these are often used because either the forward or reverse
427		mapping is broken; this translation makes it broken again.
428	DOC: Clarify $@ and $: in the Install & Op Guide.  From Kimmo
429		Suominen.
430	Portability fixes:
431		Unicos from David L. Kensiski of Sterling Sofware.
432		DomainOS from Don Lewis of Silicon Systems.
433		GNU m4 1.0.3 from Karst Koymans of Utrecht University.
434		Convex from Kimmo Suominen <kim@tac.nyc.ny.us>.
435		NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>.
436		BSD/386 from Tony Sanders of BSDI.
437		Apollo from Eric Wassenaar.
438		DGUX from Doug Anderson.
439		Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent.
440	NEW FILES:
441		src/Makefile.DomainOS
442		src/Makefile.PTX
443		src/Makefile.SunOS.5.1
444		src/Makefile.SunOS.5.2
445		src/Makefile.SunOS.5.x
446		src/mailq.1
447		cf/ostype/domainos.m4
448		doc/op/Makefile
449		doc/intro/Makefile
450		doc/usenix/Makefile
451
4528.6.5/8.6.5	94/01/13
453	Security fix:  /.forward could be owned by anyone (the test
454		to allow root to own any file was backwards).  From
455		Bob Campbell at U.C. Berkeley.
456	Security fix: group ids were not completely set when programs
457		were invoked.  This caused programs to have group
458		permissions they should not have had (usually group
459		daemon instead of their own group).  In particular,
460		Perl scripts would refuse to run.
461	Security: check to make sure files that are written are not
462		symbolic links (at least under some circumstances).
463		Although this does not respond to a specific known
464		attack, it's just a good idea.  Suggested by
465		Christian Wettergren.
466	Security fix: if a user had an NFS mounted home directory on
467		a system with a restricted shell listed in their
468		/etc/passwd entry, they could still execute any
469		program by putting that in their .forward file.
470		This fix prevents that by insisting that their shell
471		appear in /etc/shells before allowing a .forward to
472		execute a program or write a file.  You can disable
473		this by putting "*" in /etc/shells.  It also won't
474		permit world-writable :include: files to reference
475		programs or files (there's no way to disable this).
476		These behaviours are only one level deep -- for
477		example, it is legal for a world-writable :include:
478		file to reference an alias that writes a file, on
479		the assumption that the alias file is well controlled.
480	Security fix: root was not treated suspiciously enough when
481		looking into subdirectories.  This would potentially
482		allow a cracker to examine files that were publically
483		readable but in a non-publically searchable directory.
484	Fix a problem that causes an error on QUIT on a cached
485		connection to create problems on the current job.
486		These are typically unrelated, so errors occur in
487		the wrong place.
488	Reset CurrentLA in sendall() -- this makes sendmail queue
489		runs more responsive to load average, and fixes a
490		problem that ignored the load average in locally
491		generated mail.  From Eric Wassenaar.
492	Fix possible core dump on aliases with null LHS.  From
493		John Orthoefer of BB&N.
494	Revert to using flock() whenever possible -- there are just
495		too many bugs in fcntl() locking, particularly over
496		NFS, that cause sendmail to fail in perverse ways.
497	Fix a bug that causes the connection cache to get confused
498		when sending error messages.  This resulted in
499		"unexpected close" messages.  It should fix itself
500		on the following queue run.  Problem noted by
501		Liudvikas Bukys of the University of Rochester.
502	Include $k in $=k as documented in the Install & Op Guide.
503		This seems odd, but it was documented....  From
504		Michael Corrigan of UCSD.
505	Fix problem that caused :include:s from alias files to be
506		forced to be owned by root instead of daemon
507		(actually DefUid).  From Tim Irvin.
508	Diagnose unrecognized I option values -- from Mortin Forssen
509		of the Chalmers University of Technology.
510	Make "error" mailer work consistently when there is no error
511		code associated with it -- previously it returned OK
512		even though there was a real problem.  Now it assumes
513		EX_UNAVAILABLE.
514	Fix bug that caused the last header line of messages that had
515		no body and which were terminated with EOF instead of
516		"." to be discarded.  Problem noted by Liudvikas Bukys.
517	Fix core dump on SMTP mail to programs that failed -- it tried
518		to go to a "next MX host" when none existed, causing
519		a core dump.  From der Mouse at McGill University.
520	Change IDENTPROTO from a defined/not defined to a 0/1 switch;
521		this makes it easier to turn it off (using
522		-DIDENTPROTO=0 in the Makefile).  From der Mouse.
523	Fix YP_MASTER_NAME store to use the unupdated result of
524		gethostname() (instead of myhostname(), which tries
525		to fully qualify the name) to be consistent with
526		SunOS.  If your hostname is unqualified, this fixes
527		transfers to slave servers.  Bug noted by Keith
528		McMillan of Ameritech Services, Inc.
529	Fix Ultrix problem: gethostbyname() can return a very large
530		(> 500) h_length field, which causes the sockaddr
531		to be trashed.  Use the size of the sockaddr instead.
532		Fix from Bob Manson of Ohio State.
533	Don't assume "-a." on host lookups if NAMED_BIND is not
534		defined -- this confuses gethostbyname on hosts
535		file lookups, which doesn't understand the trailing
536		dot convention.
537	Log SMTP server subprocesses that die with a signal instead
538		of from a clean exit.
539	If you don't have option "I" set, don't assume that a DNS
540		"host unknown" message is authoritative -- it
541		might still be found in /etc/hosts.
542	Fix a problem that would cause Deferred: messages to be sent
543		as the subject of an error message, even though the
544		actual cause of a message was more severe than that.
545		Problem noted by Chris Seabrook of OSSI.
546	Fix race condition in DBM alias file locking.  From Kyle
547		Jones of UUNET.
548	Limit delivery syslog line length to avoid bugs in some
549		versions of syslog(3).  This adds a new compile time
550		variable SYSLOG_BUFSIZE.  From Jay Plett of Princeton
551		University, which is in turn derived from IDA.
552	Fix quotes inside of comments in addresses -- previously
553		it insisted that they be balanced, but the 822 spec
554		says that they should be ignored.
555	Dump open file state to syslog upon receiving SIGUSR1 (for
556		debugging).  This also evaluates ruleset 89, if set
557		(with the null input), and logs the result.  This
558		should be used sparingly, since the rewrite process
559		is not reentrant.
560	Change -qI, -qR, and -qS flags to be case-insensitive as
561		documented in the Bat Book.
562	If the mailer returned EX_IOERR or EX_OSERR, sendmail did not
563		return an error message and did not requeue the message.
564		Fix based on code from Roland Dirlewanger of
565		Reseau Regional Aquarel, Bordeaux, France.
566	Fix a problem that caused a seg fault if you got a 421 error
567		code during some parts of connection initialization.
568		I've only seen this when talking to buggy mailers on
569		the other end, but it shouldn't give a seg fault in
570		any case.  From Amir Plivatsky.
571	Fix core dump caused by a ruleset call that returns null.
572		Fix from Bryan Costales of ICSI.
573	Full-Name: field was being ignored.  Fix from Motonori Nakamura
574		of Kyoto University.
575	Fix a possible problem with very long input lines in setproctitle.
576		From P{r Emanuelsson.
577	Avoid putting "This is a warning message" out on return receipts.
578		Suggested by Douglas Anderson.
579	Detect loops caused by recursive ruleset calls.  Suggested by
580		Bryan Costales.
581	Initialize non-alias maps during alias rebuilds -- they may be
582		needed for parsing.  Problem noted by Douglas Anderson.
583	Log sender address even if no message was collected in SMTP
584		(e.g., if all RCPTs failed).  Suggested by Motonori
585		Nakamura.
586	Don't reflect the owner-list contents into the envelope sender
587		address if the value contains ", :, /, or | (to avoid
588		illegal addresses appearing there).
589	Efficiency hack for toktype macro -- from Craig Partridge of
590		BB&N.
591	Clean up DNS error printing so that a host name is always
592		included.
593	Remember to set $i during queue runs.  Reported by Stephen
594		Campbell of Dartmouth University.
595	If ${HOSTALIASES} is set, use it during canonification so that
596		headers are properly mapped.  Reported by Anne Bennett
597		of Concordia University.
598	Avoid printing misleading error message if SMTP mailer (not
599		using [IPC]) should die on a core dump.
600	Avoid incorrect diagnosis of "file 1 closed" when it is caused
601		by the other end closing the connection.  From
602		Dave Morrison of Oracle.
603	Improve several of the error messages printed by "mailq"
604		to include a host name or other useful information.
605	Add NetInfo preliminary support for NeXT systems.  From Vince
606		DeMarco.
607	Fix a glitch that sometimes caused :include:s that pointed to
608		NFS filesystems that were down to give an "aliasing/
609		forwarding loop broken" message instead of queueing
610		the message for retry.  Noted by William C Fenner of
611		the NRL Connection Machine Facility.
612	Fix a problem that could cause a core dump if the input sequence
613		had (or somehow acquired) a \231 character.
614	Make sure that route-addrs always have <angle brackets> around
615		them in non-SMTP envelopes (SMTP envelopes already do
616		this properly).
617	Avoid wierd headers on unbalanced punctuation of the form:
618		``Joe User <user)'' -- this caused reference to the
619		null macro.  Fix from Rick McCarty of IO.COM.
620	Fix a problem that caused an alias "user: user@local.host" to
621		not have the QNOTREMOTE bit set; this caused configs
622		to act as if FEATURE(notsticky) was defined even when
623		it was not.  The effect of the problem was to make it
624		very hard to to set up satellite sites that had a few
625		local accounts, with everything else forwarded to a
626		corporate hub.  Reported by Detlef Drewanz of the
627		University of Rostock and Mark Frost of NCD.
628	Change queuing to not call rulesets 3, {1 or 2}, 4 on header
629		addresses.  This is more efficient (fewer name server
630		calls) and fixes certain unusual configurations, such
631		as those that have ruleset 4 do something that is
632		non-idempotent unless a mailer-specific ruleset did
633		something else.  Problem reported by Brian J. Coan
634		of the Institute for Global Communications.
635	Fix the "obsolete argument" routine in main to better understand
636		new arguments.  For example, if you used ``sendmail
637		-C config -v -q'' it would choke on the -q because
638		the -C would stop looking for old-format arguments.
639	Fix the code that was intended to allow two users to forward their
640		mail to the same program and have them appear unique.
641	Portability fixes for:
642		SCO UNIX from Murray Kucherawy.
643		SCO Open Server 3.2v4 from Philippe Brand.
644		System V Release 4 from Rick Ellis and others.
645		OSF/1 from Steve Campbell.
646		DG/UX from Ben Mesander of the USGS and Bryan Curnutt
647			of Stoner Associates.
648		Motorola SysV88 from Kevin Johnson of Motorola.
649		Solaris 2.3 from Casper H.S. Dik of the University
650			of Amsterdam and John Caruso of University
651			of Maryland.
652		FreeBSD from Ollivier Robert.
653		NetBSD from Adam Glass.
654		TitanOS from Kate Hedstrom of Rutgers University.
655		Irix from Bryan Curnutt.
656		Dynix from Jim Davis of the University of Arizona.
657		RISC/os.
658		Linux from John Kennedy of California State University
659			at Chico.
660		Solaris 2.x from Tony Boner of the U.S. Air Force.
661		NEXTSTEP 3.x from Vince DeMarco.
662		HP-UX from various people.  NOTA BENE:  the location
663			of the config file has moved to /usr/lib
664			to match the HP-UX version of sendmail.
665	CONFIG: Don't do any recipient rewriting on relay mailer;
666		since this is intended only for internal use, the
667		usual RFC 821/822/1123 rules can be relaxed.  The
668		main point of this is to avoid munging (ugh) UUCP
669		addresses when relaying internally.
670	CONFIG: fix typo in mailer/uucp.m4 that mutilates list:;
671		syntax addresses delivered via UUCP.  Solution
672		provided by Peter Wemm.
673	CONFIG: fix thumb-fumble in default UUCP relaying in ruleset
674		zero; it caused double @ signs in addresses.  From
675		Irving Reid of the University of Toronto.
676	CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1
677		from Markku Toijala of ICL Personal Systems Oy.
678	CONFIG: Add trailing "." on pseudo-domains for consistency;
679		this fixes a problem (noted by Al Whaley of Sunnyside)
680		that made it hard to recognize your own pseudodomain
681		names.
682	CONFIG: catch "@host" syntax errors (i.e., null local-parts)
683		rather than letting them get "local configuration
684		error"s.  Problem noted by John Gardiner Myers.
685	CONFIG: add uucp-uudom mailer variant, based on code posted
686		by Spider Boardman <spider@Orb.Nashua.NH.US>; this
687		has uucp-dom semantics but old UUCP syntax.  This
688		also permits "uucp-old" as an alias for "uucp" and
689		"uucp-new" as a synonym for "suucp" for consistency.
690	CONFIG: add POP mailer support (from Kimmo Suominen
691		<kim@grendel.lut.fi>).
692	CONFIG: drop CSNET_RELAY support -- CSNET is long gone.
693	CONFIG: fix bug caused with domain literal addresses (e.g.,
694		``[128.32.131.12]'') when FEATURE(allmasquerade)
695		was set; it would get an additional @masquerade.host
696		added to the address.  Problem noted by Peter Wan
697		of Georgia Tech.
698	CONFIG: make sure that the local UUCP name is in $=w.  From
699		Jim Murray of Stratus.
700	CONFIG: changes to UUCP rewriting to simulate IDA-style "V"
701		mailer flag.  Briefly, if you are sending to host
702		"foo", then it rewrites "foo!...!baz" to "...!baz",
703		"foo!baz" remains "foo!baz", and anything else has
704		the local name prepended.
705	CONFIG: portability fixes for HP-UX.
706	DOC: several minor problems fixed in the Install & Op Guide.
707	MAKEMAP: fix core dump problem on lines that are too long or
708		which lack newline.  From Mark Delany.
709	MAILSTATS: print sums of columns (total messages & kbytes
710		in and out of the system).  From Tom Ferrin of UC
711		San Francisco Computer Graphics Lab.
712	SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES:
713		On HP-UX, /etc/sendmail.cf has been moved to
714			/usr/lib/sendmail.cf to match HP sendmail.
715		Permissions have been tightened up on world-writable
716			:include: files and accounts that have shells
717			that are not listed in /etc/shells.  This may
718			cause some .forward files that have worked
719			before to start failing.
720		SIGUSR1 dumps some state to the log.
721	NEW FILES:
722		src/Makefile.DGUX
723		src/Makefile.Dynix
724		src/Makefile.FreeBSD
725		src/Makefile.Mach386
726		src/Makefile.NetBSD
727		src/Makefile.RISCos
728		src/Makefile.SCO
729		src/Makefile.SVR4
730		src/Makefile.Titan
731		cf/mailer/pop.m4
732		cf/ostype/bsdi1.0.m4
733		cf/ostype/dgux.m4
734		cf/ostype/dynix3.2.m4
735		cf/ostype/sco3.2.m4
736		makemap/Makefile.dist
737		praliases/Makefile.dist
738
7398.6.4/8.6.4	93/10/31
740	Repair core-dump problem (write to read-only memory segment)
741		if you fall back to the return-to-Postmaster case in
742		savemail.  Problem reported by Richard Liu.
743	Immediately diagnose bogus sender addresses in SMTP.  This
744		makes quite certain that crackers can't use this
745		class of attack.
746	Reliability Fix:  check return value from fclose() and fsync()
747		in a few critical places.
748	Minor problem in initsys() that reversed a condition for
749		redirecting the output channel on queue runs.  It's
750		not clear this code even does anything.  From Eric
751		Wassenaar of the Dutch National Institute for Nuclear
752		and High-Energy Physics.
753	Fix some problems that caused queue runs to do "too much work",
754		such as double-reading the Errors-To: header.  From
755		Eric Wassenaar.
756	Error messages on writing the temporary file (including the
757		data file) were getting suppressed in SMTP -- this
758		fix causes them to be properly reported.  From Eric
759		Wassenaar.
760	Some changes to support AF_UNIX sockets -- this will only
761		really become relevant in the next release, but some
762		people need it for local patches.  From Michael
763		Corrigan of UC San Diego.
764	Use dynamically allocated memory (instead of static buffers)
765		for macros defined in initsys() and settime(); since
766		these can have different values depending on which
767		envelope they are in.  From Eric Wassenaar.
768	Improve logging to show ctladdr on to= logging; this tells you
769		what uid/gid processes ran as.
770	Fix a problem that caused error messages to be discarded if
771		the sender address was unparseable for some reason;
772		this was supposed to fall back to the "return to
773		postmaster" case.
774	Improve aliaswait backoff algorithm.
775	Portability patches for Linux (8.6.3 required another header
776		file) (from Karl London) and SCO UNIX.
777	CONFIG: patch prog mailer to not strip host name off of envelope
778		addresses (so that it matches local again).  From
779		Christopher Davis.
780	CONFIG: change uucp-dom mailer so that "<>" translates to $n;
781		this prevents uux from seeing lines with null names like
782		``From   Sat Oct 30 14:55:31 1993''.  From Motonori
783		Nakamura of Kyoto University.
784	CONFIG: handle <list:;> syntax correctly.  This isn't legal, but
785		it shouldn't fail miserably.  From Motonori Nakamura.
786
7878.6.3/8.6.3	93/10/24
788	IMPORTANT FIX: Fix several problems that caused open files to
789		be "lost" during queue runs; this overflowed the open
790		file table on large runs.  An assumption that fdopen
791		always succeeds sometimes resulted in core dumps when
792		this happens; sometimes the message is delivered twice,
793		sometimes (probably) infinite times.  This problem in
794		various form was reported by P{r (Pell) Emanuelsson and
795		Robert Campbell of U.C. Berkeley.
796	Special diagnosis of EMFILE error conditions -- it now prints
797		the known open file descriptors so you can figure out
798		what is consuming so much resources.
799	Fix a couple of problems caused by early address parsing
800		errors -- one caused it to return a "this is only a
801		warning" when it really wasn't, and the other started
802		parsing through a random pointer.  The first was
803		noted by Eric Wassenaar.
804	Fix an infinite loop problem caused by null components in the
805		host signature.  Problem noted by Jan Sorensen.
806	Be sure to reset the "current date" when sending an error
807		message -- PostMasterCopy messages were being sent
808		with an old Date: header.
809	Fix a problem that caused duplicated mail when sendmail was
810		(1) compiled without HASFLOCK, (2) you are sending to
811		an alias that has an owner-* alias, (3) you execute
812		sendmail with -t flag, (4) you run in -odb mode, and
813		(5) the sender specifies both the alias name and
814		another alias [i.e., the envelope is split], then
815		duplicate messages are sent.  The problem description
816		and one-line fix are from Motonori Nakamura of Kyoto
817		University.
818	Avoid a problem that causes error messages to be discarded
819		in some cases -- this was the result of a "fix" to
820		avoid duplicate error messages, but two are better
821		than zero.  Reported by Tim Rylance.
822	Fix a minor botch in checkfd012() -- fix from Dave Hill of
823		Computervision R&D Ltd.
824	Remove "X-Authentication-Warning: <user> set sender to <address>
825		using -f" entirely -- it is far too eager to include
826		this, and it is confusing folks.  I'll try to make it
827		work "right" in 8.7.  Problem noted by Yoshitaka
828		Tokugawa of dit Co., Ltd.
829	Fix a race condition with the errno value in tick() and
830		reapchild() -- this caused occasional misdiagnosis
831		of problems.  Kyle Jones of UUNET helped this along.
832	Repair rule loop-detection code.  From Michael Corrigan of
833		U.C. San Diego.
834	Fix a problem that caused sender domain addition (C mailer
835		flag to be ignored if you use -odq or use -odb with
836		a high load average.  Problem reported by Jim Murray
837		of Stratus.
838	Fix ident protocol on multi-homed machines.  It was not
839		always using the correct interface.  Fix from J.R.
840		Oldroyd of Opal.
841	Previously, sendmail assumed that any SMTP greeting message
842		that wasn't 2xx was a temporary failure -- it should
843		only take 4xx as a temporary failure, and return a
844		solid error message on anything else -- for example,
845		to allow you to reject connections on a workstation
846		that is MXed to a mail server.
847	Portability enhancements for 386BSD/FreeBSD/NetBSD from
848		Ollivier Robert.
849	CONFIG: FEATURE(always_add_domain) didn't always add the domain;
850		in particular, on local mail it modified the header sender
851		but not the header recipient address(es).  Reported by
852		Jeffrey Honig of Cornell University.  Also, strip
853		any host from envelope recipient address(es), since
854		local mailers don't understand host names -- this is
855		to help mailertable entries.  From Christopher Davis.
856	CONFIG: masquerading didn't apply to addresses that already
857		had a domain.  This change replaces a local hostname
858		by the masquerade name in the SMTP mailer (previously
859		it only added the masquerade name if it didn't already
860		have a domain name).  Several people complained about
861		this.
862
8638.6.2/8.6.2	93/10/15
864	Put a "successful delivery" message in the transcript for
865		addresses that get return-receipts.
866	Put a prominent "this is only a warning" message in warning
867		messages -- some people don't read carefully enough
868		and end up sending the message several times.
869	Include reason for temporary failure in the "warning" return
870		message.  Currently, it just says "cannot send for
871		four hours".
872	Fix the "Original message received" time generated for
873		returntosender messages.  It was previously listed as
874		the current time.  Bug reported by Eric Hagberg of
875		Cornell University Medical College.
876	If there is an error when writing the body of a message,
877		don't send the trailing dot and wait for a response
878		in sender SMTP, as this could cause the connection to
879		hang up under some bizarre circumstances.  From Eric
880		Wassenaar.
881	Fix some server SMTP synchronization problems caused when
882		connections fail during message collection.  From
883		Eric Wassenaar.
884	Fix a problem that can cause srvrsmtp to reject mail if the
885		name server is down -- it accepts the RCPT but rejects
886		the DATA command.  Problem reported by Jim Murray of
887		Stratus.
888	Fix a problem that can cause core dumps if the config file
889		incorrectly resolves to a null hostname.  Reported by
890		Allan Johannesen of WPI.
891	Non-root use of -C flag, dangerous -f flags, and use of -oQ
892		by non-root users were not put into
893		X-Authentication-Warning:s as intended because the
894		config file hadn't set the PrivacyFlags yet.  Fix
895		from Sven-Ove Westberg of the University of Lulea.
896	Under very odd circumstances, the alias file rebuild code
897		could get confused as to whether a database was
898		open or not.
899	Check "vendor code" on the end of V lines -- this is
900		intended to provide a hook for vendor-specific
901		configuration syntax.  (This is a "new feature",
902		but I've made an exception to my rule in a belief
903		that this is a highly exceptional case.)
904	Portability fixes for DG/UX (from Douglas Anderson of NCSC),
905		SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
906		(from Jon Forrest of UC Berkeley)
907	CONFIG: fix ``mailer:host'' form of UUCP relay naming.
908
9098.6.1/8.6	93/10/08
910	Portability fixes for A/UX and Encore UMAX V.
911	Fix error message handling -- if you had a name server down
912		causing an error during parsing, that message was never
913		propogated to the queue file.
914
9158.6/8.6		93/10/05
916	Configuration cleanup: make it easier to undo IDENTPROTO in
917		conf.h (other systems have the same bug).
918	If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
919		getdtablesize() instead of sysconf(); a disturbingly
920		large number of systems defined _SC_OPEN_MAX in the
921		header files but don't have the syscall.
922	Another patch to really truly ignore MX records in getcanonname
923		if trymx == FALSE.
924	Fix problem that caused the "250 IAA25499 Message accepted for
925		delivery" message to be omitted if there was an error
926		in the header of the message (e.g., a bad Errors-To:
927		line).  Pointed out by Michael Corrigan of UCSD.
928	Announce name of host we are chatting when we get errors; this
929		is an IDA-ism suggested by Christophe Wolfhugel.
930	Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
931		Australian Artificial Intelligence Institute), SCO Unix
932		(from Murray Kucherawy of Hookup Communication Corp.),
933		NeXT (from Vince DeMarco and myself), Linux (from
934		Karl London <karl@borg.demon.co.uk>), BSDI (from
935		Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
936		Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
937	Some changes to get around gcc optimizer bugs.  From Takahiro
938		Kanbe.
939	Fix error recovery in queueup if another tf file of the same
940		name already exists.  Problem stumbled over by Bill
941		Wisner of The Well.
942	Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
943		Problem noted by Keith McMillan of Ameritech Services.
944	Deal with group permissions properly when opening .forward and
945		:include: files.  This relaxes the 8.1C restrictions
946		slightly more.  This includes proper setting of groups
947		when reading :include: files, allowing you to read some
948		files that you should be able to read but have previously
949		been denied unless you owned them or they had "other"
950		read permission.
951	Make certain that $j is in $=w (after the .cf is read) so that
952		if the user is forced to override some silly system,
953		MX suppression will still work.
954	Fix a couple of efficiency problems where newstr was double-
955		calling expensive routines.  In at least one case, it
956		wasn't guaranteed that they would always return the
957		same result.  Problem noted by Christophe Wolfhugel.
958	Fix null pointer dereference in putoutmsg -- only on an error
959		condition from a non-SMTP mailer.  From Motonori
960		Nakamura.
961	Macro expand "C" line class definitions before scanning so that
962		"CX $Z" works.
963	Fix problem that caused error message to be sent while still
964		trying to send the original message if the connection
965		is closed during a DATA command after getting an error
966		on an RCPT command (pretty obscure).  Problem reported
967		by John Myers of CMU.
968	Fix reply to NOOP to be 250 instead of 200 -- this is a long
969		term bug.
970	Fix a nasty bug causing core dumps when returning the "warning:
971		cannot deliver for N hours -- will keep trying" message;
972		it only occurred if you had PostMasterCopy set and
973		only on some architectures.  Although sendmail would
974		keep trying, it would send error messages on each
975		queue interval.  This is an important fix.
976	Allow u and g options to take user and group names respectively.
977	Don't do a chdir into the queue directory in -bt mode to make
978		ruleset testing a bit easier.
979	Don't allow users to turn off logging (using -oL) on the command
980		line -- command line can only raise, not lower, logging
981		level.
982	Set $u to the original recipient on the SMTP transaction or on
983		the command line.  This is only done if there is exactly
984		one recipient.  Technically, this does not meet the
985		specs, because it does not guarantee a domain on the
986		address.
987	Fix a problem that dumped error messages on bad addresses if
988		you used the -t flag.  Problem noted by Josh Smith of
989		Harvey Mudd College.
990	Given an address such as ``<foo> <bar>'', auto-quote the first
991		``<foo>'' part, giving ``"<foo>" <bar>''.  This is to
992		avoid the problem of people who use angle brackets in
993		their full name information.
994	Fix a null pointer dereference if you set option "l", have
995		an Errors-To: header in the message, and have Errors-To:
996		defined in the config file H lines.  From J.R. Oldroyd.
997	Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
998		wrong when compiling.  Suggested by Rick McCarty of TI.
999	Fix a problem that could pass negative SIZE parameter if the
1000		df file got lost; this would cause servers to always
1001		give a temporary failure, making the problem even worse.
1002		Problem noted by Allan Johannesen of WPI.
1003	Add "ident" timeout (one of the "r" option selectors) for IDENT
1004		protocol timeouts (30s default).  Requested by Murray
1005		Kucherawy of HookUp Communication Corp. to handle bogus
1006		PC TCP/IP implementations.
1007	Change $w default definition to be just the first component of
1008		the domain name on config level 5.  The $j macro defaults
1009		to the FQDN; $m remains as before.  This lets well-behaved
1010		config files use any of the short, long, or subdomain
1011		names.
1012	Add makesendmail script in src to try to automate multi-architecture
1013		builds.  I know, this is sub-optimal, but it is still
1014		helpful.
1015	Fix very obscure race condition that can cause a queue run to
1016		get a queue file for an already completed job.  This
1017		problem has existed for years.  Problem noted by the
1018		long suffering Allan Johannesen of WPI.
1019	Fix a problem that caused the raw sender name to be passed to
1020		udbsender instead of the canonified name -- this caused
1021		it to sometimes miss records that it should have found.
1022	Relax check of name on HELO packet so that a program using -bs
1023		that claims to be itself works properly.
1024	Restore rewriting of $: part of address through 2, R, 4 in
1025		buildaddr -- this requires passing a lot of flags to get
1026		it right.  Unlike old versions, this ONLY rewrites
1027		recipient addresses, not sender addresses.
1028	Fix a bug that caused core dumps in config files that cannot
1029		resolve /file/name style addresses.  Fix from Jonathan
1030		Kamens of OpenVision Technologies.
1031	Fix problem with fcntl locking that can cause error returns to
1032		be lost if the lock is lost; this required fully
1033		queueing everything, dropping the envelope (so errors
1034		would get returned), and then re-reading the queue from
1035		scratch.
1036	Fix a problem that caused aliases that redefine an otherwise
1037		true address to still send to the original address
1038		if and only if the alias failed in certain bizarre
1039		ways (e.g, if they pointed at a list:; syntax address).
1040		Problem pointed out by Jonathan Kamens.
1041	Remove support for frozen configuration files.  They caused
1042		more trouble than it was worth.
1043	Fix problem that can cause error messages to get ignored when
1044		using both -odb and -t flags.  Problem noted by Rob
1045		McNicholas at U.C. Berkeley.
1046	Include all "normal" variations on hostname in $=w.  For example,
1047		if the host name is vangogh.cs.berkeley.edu, $=w will
1048		contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
1049	Add "restrictqrun" privacy flag -- without this, anyone can run
1050		the queue.
1051	Reset SmtpPhase global on initial connection creation so that
1052		messages don't come out with stale information.
1053	Pass an "ext" argument to lockfile so that error/log messages
1054		will properly reflect the true filename being locked.
1055	Put all [...] address forms into $=w -- this eliminates the need
1056		for MAXIPADDR in conf.h.  Suggested by John Gardiner
1057		Myers of CMU.
1058	Fix a bug that can cause qf files to be left around even after
1059		an SMTP RSET command.  Problem and fix from Michael
1060		Corrigan.
1061	Don't send a PostMasterCopy to errors when the Precedence: is
1062		negative.  Error reports still go to the envelope
1063		sender address.
1064	Add LA_SHORT for load averages.
1065	Lock sendmail.st file when posting statistics.
1066	Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
1067		set the size of the TCP send and receive buffers; if you
1068		run over a slow slip line you may need to set these down
1069		(although it would be better to fix the SLIP implementation
1070		so that it's not necessary to recompile every program
1071		that does bulk data transfer).
1072	Allow null defaults on $( ... $) lookups.  Problem reported by
1073		Amir Plivatsky.
1074	Diagnose crufty S and V config lines.  This resulted from an
1075		observation that some people were using the SITE macro
1076		without the SITECONFIG macro first, which was causing
1077		bogus config files that were not caught.
1078	Fix makemap -f flag to turn off case folding (it was turning it
1079		on instead).  THIS IS A USER VISIBLE CHANGE!!!
1080	Fix a problem that caused multiple error messages to be sent if
1081		you used "sendmail -t -oem -odb", your system uses fcntl
1082		locking, and one of the recipient addresses is unknown.
1083	Reset uid earlier in include() so that recursive .forwards or
1084		:include:s don't use the wrong uid.
1085	If file descriptor 0, 1, or 2 was closed when sendmail was
1086		called, the code to recover the descriptor was broken.
1087		This sometimes (only sometimes) caused problems with the
1088		alias file.  Fix from Motonori Nakamura.
1089	Fix a problem that caused aliaswait to go into infinite recursion
1090		if the @:@ metasymbol wasn't found in the alias file.
1091	Improve error message on newaliases if database files cannot be
1092		opened or if running with no database format defined.
1093	Do a better estimation of the size of error messages when NoReturn
1094		is set.  Problem noted by P{r (Pell) Emanuelsson.
1095	Fix a problem causing the "c" option (don't connect to expensive
1096		mailers) to be ignored in SMTP.  Problem noted and the
1097		solution suggested by Robert Elz of Munnari University.
1098	Improve connection caching algorithm by passing "[host]" to
1099		hostsignature, which strips the square brackets and
1100		returns the real name.  This allows mailertable entries
1101		to match regular entries.
1102	Re-enable Return-Receipt-To: -- people seem to want this stupid
1103		feature, even if it doesn't work right.
1104	Catch and log attempts to try the "wiz" command in server SMTP.
1105		This also ups the log level from LOG_NOTICE to LOG_CRIT.
1106	Be more generous at assigning $z to the home directory -- do this
1107		for programs that are specified through a .forward file.
1108		Fix from Andrew Chang of Sun Microsystems.
1109	Always save a fatal error message in preference to a non-fatal
1110		error message so that the "subject" line of return
1111		messages is the best possible.
1112	CONFIG: reduce the number of quotes needed to quote configuration
1113		parameters with commas: two quotes should work now, e.g.,
1114		define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
1115	CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
1116		connections (domain-ized UUCP).
1117	CONFIG: fix bug in default maps (-o must be before database file
1118		name).  Pointed out by Christophe Wolfhugel.
1119	CONFIG: add FEATURE(nodns) to state that we are not relying on
1120		DNS.  This would presumably be used in UUCP islands.
1121	CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
1122	CONFIG: log $u in Received: line.  This is in technical violation
1123		of the standards, since it doesn't guarantee a domain
1124		on the address.
1125	CONFIG: don't assume "m" in local mailer flags -- this means that
1126		if you redefine LOCAL_MAILER_FLAGS you will have to include
1127		the "m" flag should you want it.  Apparently some Solaris 2.2
1128		installations can't handle multiple local recipients.
1129		Problem noted by Josh Smith.
1130	CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
1131	CONFIG: change default version level from 4 to 5.
1132	CONFIG: add FEATURE(nullclient) to create a config file that
1133		forwards all mail to a hub without ever looking at the
1134		addresses in any detail.
1135	CONFIG: properly strip mailer: information off of relays when
1136		used to change .BITNET form into %-hack form.
1137	CONFIG: fix a problem that caused infinite loops if presented
1138		with an address such as "!foo".
1139	CONFIG: check for self literal (e.g., [128.32.131.12]) even if
1140		the reverse "PTR" mapping is broken.  There's a better
1141		way to do this, but the change is fairly major and I
1142		want to hold it for another release.  Problem noted by
1143		Bret Marquis.
1144
11458.5/8.5		93/07/23
1146	Serious bug: if you used a command line recipient that was unknown
1147		sendmail would not send a return message (it was treating
1148		everything as though it had an SMTP-style client that
1149		would do the return itself).  Problem noted by Josh Smith.
1150	Change "trymx" option in getcanonname() to ignore all MX data,
1151		even during a T_ANY query.  This actually didn't break
1152		anything, because the only time you called getcanonname
1153		with !trymx was if you already knew there were no MX
1154		records, but it is somewhat cleaner.  From Motonori
1155		Nakamura.
1156	Don't call getcanonname from getmxrr if you already know there
1157		are no DNS records matching the name.
1158	Fix a problem causing error messages to always include "The
1159		original message was received ... from localhost".
1160		The correct original host information is now included.
1161	Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
1162		version of "test" doesn't have the -x flag).  Change it
1163		to use -f instead.  From John Myers.
1164	CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
1165		esmtp -- it should be smtp.
1166	CONFIG: send all relayed mail using confRELAY_MAILER (defaults
1167		to "relay" (a variant of "smtp") if MAILER(smtp) is used,
1168		else "suucp" if MAILER(uucp) is used, else "unknown");
1169		this cleans up the configs somewhat.  This fixes a serious
1170		problem that caused route-addrs to get mistaken as relays,
1171		pointed out by John Myers.  WARNING: this also causes
1172		the default on SMART_HOST to change from "suucp" to
1173		"relay" if you have MAILER(smtp) specified.
1174
11758.4/8.4		93/07/22
1176	Add option `w'.  If you receive a message that comes to you because
1177		you are the best (lowest preference) target of an MX, and
1178		you haven't explicitly recognized the source MX host in
1179		your .cf file, this option will cause you to try the target
1180		host directly (as if there were no MX for it at all).  If
1181		`w' is not set, this case is a configuration error.
1182		Beware: if `w' is set, senders may get bogus errors like
1183		"message timed out" or "host unknown" for problems that
1184		are really configuration errors.  This option is
1185		disrecommended, provided only for compatibility with
1186		UIUC sendmail.
1187	Fix a problem that caused the incoming socket to be left open
1188		when sendmail forks after the DATA command.  This caused
1189		calling systems to wait in FIN_WAIT_2 state until the
1190		entire list was processed and the child closed -- a
1191		potentially prodigious amount of time.  Problem noted
1192		by Neil Rickert.
1193	Fix problem (created in 6.64) that caused mail sent to multiple
1194		addresses, one of which was a bad address, to completely
1195		suppress the sending of the message.  This changes
1196		handling of EF_FATALERRS somewhat, and adds an
1197		EF_GLOBALERRS flag.  This also fixes a potential problem
1198		with duplicate error messages if there is a syntax error
1199		in the header of a message that isn't noticed until late
1200		in processing.  Original problem pointed out by Josh Smith
1201		of Harvey Mudd College.  This release includes quite a bit
1202		of dickering with error handling (see below).
1203	Back out SMTP transaction if MAIL gets nested 501 error.  This
1204		will only hurt already-broken software and should help
1205		humans.
1206	Fix a problem that broke aliases when neither NDBM nor NEWDB were
1207		compiled in.  It would never read the alias file.
1208	Repair unbalanced `)' and `>' (the "open" versions are already
1209		repaired).
1210	Logging of "done" in dropenvelope() was incorrect: it would
1211		log this even when the queue file still existed.  Change
1212		this to only log "done" (at log level 11) when the
1213		queue file is actually removed.  From John Myers.
1214	Log "lost connection" in server SMTP at log level 20 if there
1215		is no pending transaction.  Some senders just close the
1216		connection rather than sending QUIT.
1217	Fix a bug causing getmxrr to add a dot to the end of unqualified
1218		domains that do not have MX records -- this would cause
1219		the subsequent host name lookup to fail.  The problem
1220		only occurred if you had FEATURE(nocanonify) set.
1221		Problem noted by Rick McCarty of Texas Instruments.
1222	Fix invocation of setvbuf when passed a -X flag -- I had
1223		unwittingly used an ANSI C extension, and this caused
1224		core dumps on some machines.
1225	Diagnose self-destructive alias loops on RCPT as well as EXPN.
1226		Previously it just gave an empty send queue, which
1227		then gave either "Need RCPT (recipient)" at the DATA
1228		(confusing, since you had given an RCPT command which
1229		returned 250) or just dropped the email, depending on
1230		whether you were running VERBose mode.  Now it usually
1231		diagnoses this case as "aliasing/forwarding loop broken".
1232		Unfortunately, it still doesn't adequately diagnose
1233		some true error conditions.
1234	Add internal concept of "warning messages" using 6xx codes.
1235		These are not reported only to Postmaster.  Unbalanced
1236		parens, brackets, and quotes are printed as 653 codes.
1237		They are always mapped to 5xx codes before use in SMTP.
1238	Clean up error messages to tell both the actual address that
1239		failed and the alias they arose from.  This makes it
1240		somewhat easier to diagnose problems.  Difficulty noted
1241		by Motonori Nakamura.
1242	Fix a problem that inappropriately added a ctladdr to addresses
1243		that shouldn't have had one during a queue run.  This
1244		caused error messages to be handled differently during
1245		a queue run than a direct run.
1246	Don't print the qf name and line number if you get errors during
1247		the direct run of the queue from srvrsmtp -- this was
1248		just extra stuff for users to crawl through.
1249	Put command line flags on second line of pid file so you can
1250		auto-restart the daemon with all appropriate arguments.
1251		Use "kill `head -1 /etc/sendmail.pid`" to stop the
1252		daemon, and "eval `tail -1 /etc/sendmail.pid`" to
1253		restart it.
1254	Remove the ``setuid(getuid())'' in main -- this caused the
1255		IDENT daemon to screw up.  This required that I change
1256		HASSETEUID to HASSETREUID and complicate the mode
1257		changing somewhat because both Ultrix and SunOS seem
1258		to have a bug causing seteuid() to set the saved uid
1259		as well as the effective.  The program test/t_setreuid.c
1260		will test to see if your implementation of setreuid(2)
1261		is appropriately functional.
1262	The FallBackMX (option V) handling failed to properly identify
1263		fallback to yourself -- most of the code was there,
1264		but it wasn't being enabled.  Problem noted by Murray
1265		Kucherawy of the University of Waterloo.
1266	Change :include: open timeout from ETIMEDOUT to an internal
1267		code EOPENTIMEOUT; this avoids adding "during SmtpPhase
1268		with CurHostName" in error messages, which can be
1269		confusing.  Reported by Jonathan Kamens of OpenVision
1270		Technologies.
1271	Back out setpgrp (setpgid on POSIX systems) call to reset the
1272		process group id.  The original fix was to get around
1273		some problems with recalcitrant MUAs, but it breaks
1274		any call from a shell that creates a process group id
1275		different from the process id.  I could try to fix
1276		this by diddling the tty owner (using tcsetpgrp or
1277		equivalent) but this is too likely to break other
1278		things.
1279	Portability changes:
1280		Support -M as equivalent to -oM on Ultrix -- apparently
1281			DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
1282			instead of using standard flags.  Oh joy.  This
1283			behaviour reported by Jon Giltner of University
1284			of Colorado.
1285		SGI IRIX  -- this includes several changes that should
1286			help other strict ANSI compilers.
1287		SCO Unix -- from Murray Kucherawy of HookUp Communication
1288			Corporation.
1289		Solaris running the Sun C compiler (which despite the
1290			documentation apparently doesn't define
1291			__STDC__ by default).
1292		ConvexOS from Eric Schnoebelen of Convex.
1293		Sony NEWS workstations and Omron LUNA workstations from
1294			Motonori Nakamura.
1295	CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
1296	CONFIG: delete `C' and `e' from default SMTP mailers flags;
1297		several people have made a good argument that this
1298		creates more problems than it solves (although this
1299		may prove painful in the short run).
1300	CONFIG: generalize all the relays to accept a "mailer:host"
1301		format.
1302	CONFIG: move local processing in ruleset 0 into a new ruleset
1303		98 (8 on old sendmail).  Domain literal [a.b.c.d]
1304		addresses are also passed through this ruleset.
1305	CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
1306		internet-style addresses would "fall off the end" of
1307		ruleset zero and be interpreted as local -- however,
1308		the angle brackets confused the recursive call.
1309		These are now diagnosed as "Unrecognized host name".
1310	CONFIG: USENET rules weren't included in S0 because of a mistaken
1311		ifdef(`_MAILER_USENET_') instead of
1312		ifdef(`_MAILER_usenet_').  Problem found by Rein Tollevik
1313		of SINTEF RUNIT, Oslo.
1314	CONFIG: move up LOCAL_RULE_0 processing so that it happens very
1315		early in ruleset 0; this allows .mc authors to bypass
1316		things like the "short circuit" code for local addresses.
1317		Prompted by a comment by Bill Wisner of The Well.
1318	CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
1319		esmtp) to send SMTP mail.  This allows you to default
1320		to esmtp but use a mailertable or other override to
1321		deal with broken servers.  This logic was pointed out
1322		to me by Bill Wisner.  Ditto for confLOCAL_MAILER.
1323	Changes to cf/sh/makeinfo.sh to make it portable to SVR4
1324		environments.  Ugly as sin.
1325
13268.3/8.3		93/07/13
1327	Fix setuid problems introduced in 8.2 that caused messages
1328		like "Cannot create qfXXXXXX: Invalid argument"
1329		or "Cannot reopen dfXXXXXX: Permission denied".  This
1330		involved a new compile flag "HASSETEUID" that takes
1331		the place of the old _POSIX_SAVED_IDS -- it turns out
1332		that the POSIX interface is broken enough to break
1333		some systems badly.  This includes some fixes for
1334		HP-UX.  Also fixes problems where the real uid is
1335		not reset properly on startup (from Neil Rickert).
1336	Fix a problem that caused timed out messages to not report the
1337		addresses that timed out.  Error messages are also more
1338		"user friendly".
1339	Drop required bandwidth on connections from 64 bytes/sec to
1340		16 bytes/sec.
1341	Further Solaris portability changes -- doesn't require the BSD
1342		compatibility library.  This also adds a new
1343		"HASGETDTABLESIZE" compile flag which can be used if
1344		you want to use getdtablesize(2) instead of sysconf(2).
1345		These are loosely based on changes from David Meyer at
1346		University of Oregon.  This now seems to work, at least
1347		for quick test cases.
1348	Fix a problem that can cause duplicate error messages to be
1349		sent if you are in SMTP, you send to multiple addresses,
1350		and at least one of those addresses is good and points
1351		to an account that has a .forward file (whew!).
1352	Fix a problem causing messages to be discarded if checkcompat()
1353		returned EX_TEMPFAIL (because it didn't properly mark
1354		the "to" address).  Problem noted by John Myers.
1355	Fix dfopen to return NULL if the open failed; I was depending
1356		on fdopen(-1) returning NULL, which isn't the case.  This
1357		isn't serious, but does result in wierd error diagnoses.
1358		From Michael Corrigan.
1359	CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
1360		messages sent through UUCP-family mailers.  Suggested
1361		by Bill Wisner of The Well.
1362	CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
1363		include a "uucp-dom" mailer that uses domain-style
1364		addressing.  Suggested by Bill Wisner.
1365	CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
1366		LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS.  Suggested by
1367		Christophe Wolfhugel.
1368	CONFIG: Add OSTYPE(aix3).  From Christophe Wolfhugel.
1369
13708.2/8.2		93/07/11
1371	Don't drop out on config file parse errors in -bt mode.
1372	On older configuration files, assume option "l" (use Errors-To
1373		header) for back compatibility.  NOTE:  this DOES NOT
1374		imply an endorsement of the Errors-To: header in any way.
1375	Accept -x flag on AIX-3 as well as OSF/1.  Why, why, why???
1376	Don't log errors on EHLO -- it isn't a "real" error for an old
1377		SMTP server to give an error on this command, and
1378		logging it in the transcript can be confusing.  Fix
1379		from Bill Wisner.
1380	IRIX compatibility changes provided by Dan Rich
1381		<drich@sandman.lerc.nasa.gov>.
1382	Solaris 2 compatibility changes.  Provided by Bob Cunningham
1383		<bob@kahala.soest.hawaii.edu>, John Oleynick
1384		<juo@klinzhai.rutgers.edu>
1385	Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
1386		move usersmtp (smtpinit and smtpmailfrom) to -d18 to
1387		match the other flags in that file.
1388	Flush transcript before fork in mailfile().  From Eric Wassenaar.
1389	Save h_errno in mci struct and improve error message display.
1390		Changes from Eric Wassenaar.
1391	Open /dev/null for the transcript if the create of the xf file
1392		failed; this avoids at least one possible null pointer
1393		reference in very wierd cases.  From Eric Wassenaar.
1394	Clean up statistics gathering; it was over-reporting because of
1395		forks.  From Eric Wassenaar.
1396	Fix problem that causes old Return-Path: line to override new
1397		Return-Path: line (conf.c needs H_FORCE to avoid
1398		re-using old value).  From Motonori Nakamura.
1399	Fix broken -m flag in K definition -- even if -m (match only)
1400		was specified, it would still replace the key with the
1401		value.  Noted by Rick McCarty of Texas Instruments.
1402	If the name server timed out over several days, no "timed out"
1403		message would ever be sent back.  The timeout code
1404		has been moved from markfailure() to dropenvelope()
1405		so that all such failures should be diagnosted.  Pointed
1406		out by Christophe Wolfhugel and others.
1407	Relax safefile() constraints: directories in an include or
1408		forward path must be readable by self if the controlling
1409		user owns the entry, readable by all otherwise (e.g.,
1410		when reading your .forward file, you have to own and
1411		have X permssion in it; everyone needs X permission in
1412		the root and directories leading up to your home);
1413		include files must be readable by anyone, but need not
1414		be owned by you.
1415	If _POSIX_SAVED_IDS is defined, setuid to the owner before
1416		reading a .forward file; this gets around some problems
1417		on NFS mounts if root permission is not exported and
1418		the user's home directory isn't x'able.
1419	Additional NeXT portability enhancements from Axel Zinser.
1420	Additional HP-UX portability enhancements from Brian Bullen.
1421	Add a timeout around SMTP message writes; this assumes you can
1422		get throughput of at least 64 bytes/second.  Note that
1423		this does not impact the "datafinal" default, which
1424		is separate; this is just intended to work around
1425		network clogs that will occur before the final dot
1426		is sent.  From Eric Wassenaar.
1427	Change map code to set the "include null" flag adaptively --
1428		it initially tries both, but if it finds anything
1429		matching without a null it never tries again with a
1430		null and vice versa.  If -N is specified, it never
1431		tries without the null and creates new maps with a
1432		null byte.  If -O is specified, it never tries with
1433		the null (for efficiency).  If -N and -O are specified,
1434		you get -NO (get it?) lookup at all, so this would
1435		be a bad idea.  If you don't specify either -N or -O,
1436		it adapts.
1437	Fix recognition of "same from address" so that MH submissions
1438		will insert the appropriate full name information;
1439		this used to work and got broken somewhere along the
1440		way.
1441	Some changes to eliminate some unnecessary SYSERRs in the
1442		log.  For example, if you lost a connection, don't
1443		bother reporting that fact on the connection you lost.
1444	Add some "extended debugging" flags to try to track down
1445		why we get occassional problems with file descriptor
1446		one being closed when execing a mailer; it seems to
1447		only happen when there has been another error in the
1448		same transaction.  This requires XDEBUG, defined
1449		by default in conf.h.
1450	Add "-X filename" command line flag, which logs both sides of
1451		all SMTP transactions.  This is intended ONLY for
1452		debugging bad implementations of other mailers; start
1453		it up, send a message from a mailer that is failing,
1454		and then kill it off and examine the indicated log.
1455		This output is not intended to be particularly human
1456		readable.  This also adds the HASSETVBUF compile
1457		flag, defaulted on if your compiler defines __STDC__.
1458	CONFIG: change SMART_HOST to override an SMTP mailer.  If you
1459		have a local net that should get direct connects, you
1460		will need to use LOCAL_NET_CONFIG to catch these hosts.
1461		See cf/README for an example.
1462	CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
1463		sites that don't use the -d flag.
1464	CONFIG: hide recipient addresses as well as sender addresses
1465		behind $M if FEATURE(allmasquerade) is specified; this
1466		has been requested by several people, but can break
1467		local aliases.  For example, if you mail to "localalias"
1468		this will be rewritten as "localalias@masqueradehost";
1469		although initial delivery will work, replies will be
1470		broken.  Use it sparingly.
1471	CONFIG: add FEATURE(domaintable).  This maps unqualified domains
1472		to qualified domains in headers.  I believe this is
1473		largely equivalent to the IDA feature of the same name.
1474	CONFIG: use $U as UUCP name instead of $k.  This permits you
1475		to override the "system name" as your UUCP name --
1476		in particular, to use domain-ized UUCP names.  From
1477		Bill Wisner of The Well.
1478	CONFIG: create new mailer "esmtp" that always tries EHLO
1479		first.  This is currently unused in the config files,
1480		but could be used in a mailertable entry.
1481
14828.1C/8.1B	93/06/27
1483	Serious security bug fix: it was possible to read any file on
1484		the system, regardless of ownership and permissions.
1485	If a subroutine returns a fully qualified address, return it
1486		immediately instead of feeding it back into rewriting.
1487		This fixes a problem with mailertable lookups.
1488	CONFIG: fix some M4 frotz (concat => CONCAT)
1489
14908.1B/8.1A	93/06/12
1491	Serious bug fix: pattern matching backup algorithm stepped by
1492		two tokens in classes instead of one.  Found by Claus
1493		Assmann at University of Kiel, Germany.
1494
14958.1A/8.1A	93/06/08
1496	Another mailertable fix....
1497
14988.1/8.1		93/06/07
1499	4.4BSD freeze.  No semantic changes.
1500
15016.65/6.34	93/06/06
1502	Fix some lintish problems.
1503	Fix some cases where server SMTP behaved poorly when handed bogus
1504		input, pointed out by Eric Wassenaar.
1505	CONFIG: fix some more (sigh) mailertable bugs -- thanks to
1506		Motonori Nakamura of Kyoto University (again).
1507
15086.64/6.33	93/06/05
1509	Don't send 050 (-v) information after the 250 response to a QUIT
1510		command in srvrsmtp -- clients usually close the connection
1511		at this point, and it causes bogus error messages.
1512	Don't send messages that have errors on input (such as unbalanced
1513		parentheses) during SMTP transactions, since a return
1514		message has (probably) already been sent.
1515	Give better diagnostics on timeouts during network reads, including
1516		information similar to the SMTP phase.
1517	Fix bug that caused SMTP messages to deliver synchronously; this
1518		happened after the DATA 250, and hence caused reading the
1519		next command to be delayed.
1520	Ignore Errors-To: header unless 'l' (lower case el) header is
1521		specified.  The Errors-To: header violates RFC 1123.
1522		Errors-To: was only needed to take the place of the
1523		envelope sender in the days when most Unix mailers
1524		didn't understand about the two kinds of senders.
1525	Don't send warning messages in response to automatically generated
1526		messages (that is, those From:<>).
1527	CONFIG: fix some rather stupid typos in the mailertable code
1528		pointed out by Motonori Nakamura of Kyoto University.
1529	CONFIG: add confUSE_ERRORS_TO configuration option.
1530	CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M
1531		(masquerade name) instead of $j.
1532	CONFIG: don't add dots to relay names (added in 6.29); it breaks
1533		several things, and can be simulated by dot terminating
1534		the names of relays.  For example, use:
1535			DBbit.net.relay.
1536		(note the trailing dot).
1537
15386.63/6.32	93/06/01
1539	Fix prototypes to eliminate chars in argument lists -- some
1540		compilers are pissy about this.
1541	Log protocol ($r) and body type if set so we can determine if
1542		the adaptive algorithms are working.
1543	Pessimize on locking of database files (particularly for NEWDB
1544		databases) during opens.  There were problems with
1545		processes opening the file while it was rebuilt; since
1546		NEWDB caches heavily, the reader opened an empty file,
1547		which is an error.  If your system has the ability to
1548		lock atomically on open, this works properly; otherwise,
1549		there are race conditions.
1550	Check mod time on .pag file instead of .dir in NDBM aliases
1551		because the .dir file doesn't get updated for small
1552		alias files.  From John Gardiner Myers of CMU.
1553	More Solaris portability -- it now compiles on Solaris, but
1554		hangs up in gethostbyname().
1555	Move setting of RES_DEBUG flag before first myhostname() call
1556		so we can see name server traffic on that call.
1557	Fsync() queue files.
1558	Fix a problem that causes -bi to try to rebuild maps other than
1559		the alias file(s).
1560	Fix a problem that caused udb to reject entries from any but
1561		the first database listed.
1562	Rearrange doc subdirectory for 4.4BSD release tape.
1563	CONFIG: put $r into the Received line.  This was an oversight.
1564	CONFIG: fix typo (call to ruleset 99 should have been rulset 90).
1565	CONFIG: move "auxiliary" subroutines to be in ruleset 90-99
1566		range -- in the long run, single digit rulesets may
1567		become reserved for builtin use by sendmail.
1568	CONFIG: fix major problem that causes host aliases (that is,
1569		anything in $=w != $j) to not be recognized.  This has
1570		been around since 6.30.
1571
15726.62/6.31	93/05/28
1573	BETA RELEASE
1574	Fix recursive syserr (if there is an error printing a syserr
1575		message).  This makes the code much less eager to consider
1576		a write error as serious.  This also includes some
1577		heuristics to be clever about closed connections.
1578	Lock NEWDB files during gets.  This requires version 1.5 or later
1579		of the db library.  If you have an older version, you
1580		can use -DOLD_NEWDB.  This will go away in a few weeks.
1581	Fix problem causing aliases that use host maps to get overwritten.
1582	Do appropriate byte swapping on port numbers in ident protocol
1583		code.  Fix from Allan Johannesen of WPI.
1584	Defer opening of map files to the same time as alias files so that
1585		the daemon will tend to pick up new versions more promptly.
1586	Prototype a bunch more functions.
1587	Some Solaris 2.1 changes (still doesn't link though).
1588	Try to simplify Makefiles by including more subordinate #defines
1589		in conf.h (based on OS type).
1590	CONFIG: check for domains if FEATURE(mailertable) is defined.
1591		For example, if the host name is "knecht.cs.berkeley.edu"
1592		it will search the following mailertable keys:
1593			knecht.cs.berkeley.edu
1594			.cs.berkeley.edu
1595			.berkeley.edu
1596			.edu
1597		This could be used to replace the special relays for bitnet
1598		and similar nets.
1599
16006.61/6.30	93/05/24
1601	Fix problem that prevented appending dots on canonified host
1602		names.  This breaks tons of config files -- very
1603		important fix.
1604	Fix improper pointer dereference in response to HELO command.
1605	Fix core dump if debugging set in map_rewrite.
1606	CONFIG: add FEATURE(always_add_domain) to always attach the
1607		local domain (only impacts local mail).
1608	CONFIG: try to avoid turning names into $j -- although
1609		technically a host can only have one "canonical name",
1610		it seems to be common practice to have several.
1611
16126.60/6.29	93/05/22
1613	Major change: merge alias databases with maps.  This expands and
1614		changes the map class interface but fixes a bunch of bugs.
1615		The important user-visible change is that the file name
1616		in a K line now does not include the ".db" extension; this
1617		is added automatically.  Also, the -d (NIS domain) flag is
1618		missing from the K config line; use @domain instead.
1619		When compiling, the *_MAP names are gone -- just compile
1620		in NDBM, NEWDB, and/or NIS support.
1621	Announce mailer/host/user triple on -bv flag -- from Brian
1622		Bullen of Stirling University.
1623	Don't send more than one line in response to HELO -- it confuses
1624		Pony Express, which then behaves very badly.  However,
1625		this change does send two line 220 greetings, with the
1626		second line reading "ESMTP spoken here".  The usersmtp
1627		module recognizes this and goes into ESMTP mode regardless
1628		of the setting of the "a" mailer flag.  Thus, "a" means
1629		"always try EHLO".
1630	AIX portability changes (thanks to Christophe Wolfhugel of
1631		Herve Schauer Consultants (Paris) for providing me with
1632		an INSA account for this purpose).  Lightly tested.  Use
1633		-D_AIX3.  This probably breaks compatibility with some
1634		older systems (e.g., 4.2bsd) but still works on SunOS
1635		4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3.
1636	Fix a problem causing an error message loop if the output channel
1637		is hosed.
1638	Add the Makefiles that I use for various environments -- some are
1639		Berkeley make versions and some are old make versions.
1640		My makefile for the NeXT box has gotten lost, alas!
1641	PRALIASES: support for printing NEWDB databases.  From
1642		Michael J. Corrigan of U.C. San Diego.
1643	CONFIG: don't pass pseudo-domains to $[ ... $] (if you have
1644		a wildcard MX it can have wierd results).  From
1645		Christophe Wolfhugel.
1646	CONFIG: dot terminate relay hostnames in S0.  From Christophe
1647		Wolfhugel.
1648
16496.59/6.28	93/05/13
1650	Log version with SMTP daemon startup message.
1651	Adjust setproctitle to work on NetBSD and BSD/386.
1652	Fix null pointer reference in MX fallback code.
1653	A bunch of minor fixes from Eric Wassenaar:
1654		If deliver cannot execv the mailer, return EX_OSERR
1655			instead of EX_TEMPFAIL (to give better
1656			error messages).
1657		Consistently malloc e_message.
1658		Catch degenerate case of calling returntosender()
1659			with an empty returnq.
1660		MIME reformatting.
1661
16626.58/6.28	93/05/13
1663	Fix bug that can cause incorrect verbose display of user smtp
1664		messages.
1665	Disable SMTP VERB command if PRIV_NOEXPN is set (since this
1666		could reveal the same information.
1667	Allow failure when reading SMTP greeting message to go on to
1668		next MX host.
1669	Add "MIME-Version: 1.0" header if using MIME (this was NOT
1670		included in RFC 1344, but Bill King of Allan-Bradley
1671		Company forwarded me email from Nathaniel Borenstein
1672		claiming that it was an inadvertent omission).
1673	Don't use Content-Type: X-message-header.  According to John
1674		Myers of CMU, many MIME readers will completely ignore
1675		the data if they don't recognize it.  Instead, just
1676		add a blank line to make it a legal (empty) message.
1677	Fix problem causing dots to keep getting appended to cached
1678		hostnames.  This can cause buffer overrun conditions.
1679		The problem was found by Erik Forsberg of Retix,
1680		although I used a different bug fix than he provided.
1681	Fix parsing of split header/envelope rewriting specs -- from
1682		Eric Forsberg.
1683	Fix from Eric Wassenaar to correct To: lists in error messages.
1684
16856.57/6.28	93/05/11
1686	Fix minor glitch causing extra ctladdrs to be output to queue
1687		file.  Just an annoyance.
1688	Cache results of name server canonification lookups to avoid
1689		backed up queue runs.
1690	Major rewrite of alias.c: considerable cleanup, plus sample
1691		(untested) support for NIS aliases.  The "A" option
1692		can now be a comma separated list (or be repeated) --
1693		that is, you can have multiple alias databases.  Each
1694		database can have the syntax ``class:file''; if no class
1695		is specified, the "implicit" class is assumed.  Implicit
1696		searches through a list of compiled in types -- hash,
1697		dbm, nis, and stab.  Alias files are searched in the
1698		order they are listed.  For example:
1699			OAhash:/etc/aliases.local,/etc/aliases
1700			OAnis:mail.aliases@my.nis.domain
1701		first searches the hash database /etc/aliases.local,
1702		then the regular /etc/aliases database, then the NIS
1703		map "mail.aliases" in the NIS domain "my.nis.domain".
1704	If in Verbose mode (probably from VERB command) run SMTP job
1705		in foreground and don't do RCPT optimizations.
1706	Add udb :mailsender as equivalent to owner- for regular aliases.
1707	Delete option 8; add option 7 that means the opposite.  That is,
1708		default to 8-bit mode; a special option is needed to
1709		force sendmail into 7 bit mode.
1710	Send error messages in encapsulated MIME format.
1711	New compile flag "NIS" that turns on NIS alias and NIS map
1712		support.
1713	Add "j" option to send error messages in MIME (RFC 1341)
1714		encapsulated message format per RFC 1344.  The
1715		syntax is pretty ugly if you don't have MIME-aware
1716		user agents.
1717	Clean up message handling (for display in mailq output).
1718	New setproctitle implementation for 4.4bsd.
1719	Create files (such as ~/dead.letter) using mode FileMode (the
1720		F option value) instead of 0666.
1721	Fix bug causing output of EXPN command to not be fully qualified.
1722		This may cause some problems with UUCP addresses that
1723		will require some config file assistance -- specifically,
1724		the $: part has to include the host name for this output
1725		to make sense.
1726	Fix a problem that sometimes diagnosed errors and still sent the
1727		message if the header syntax was bad.
1728	Fix a bug that caused an error message to be emailed when sendmail
1729		was operating in -bv mode.
1730	Add "ListenQueueSize" keyword to daemon options option (OO) to
1731		set the queue size parameter passed to listen().  You
1732		will normally have to tweak your kernel to up this.
1733	Strip spaces off of beginning of message-id before logging (in
1734		case it was folded across lines).
1735	Tweak compile flags in daemon.c -- there were some cases where
1736		it wouldn't work without NETINET.
1737	Change *file* mailer to output all the usual default headers
1738		(From, Date, Message-Id).  It gets used when sending
1739		back error messages.
1740	CONFIG: explicitly catch and diagnose list:; syntax in ruleset
1741		zero -- this is not a valid recipient syntax according
1742		to RFC 821.
1743	CONFIG: add confMIME_FORMAT_ERRORS to send error messages in
1744		MIME format.  Defaults to on.
1745	CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment
1746		the flags for those mailers.
1747
17486.56/6.27	93/05/01
1749	Fix problem that causes the fallback mail to postmaster
1750		(case ESM_POSTMASTER in savemail()) to not look at
1751		aliases (ugh).
1752	Some more HPUX tweaking (compile flag hpux => __hpux so it
1753		still works in ANSI mode).
1754	Don't try to flock non-regular files when mailing to a file.
1755		In particular, this was a problem if you tried to
1756		send to /dev/null.
1757	Fix a wierd bug that can cause senders to be queued as
1758		recipients if the name server is down when the mail
1759		is initially sent.  This hack just ignores sender
1760		deletion (essentially, it sets the MeToo flag) if there
1761		is a TEMPFAIL during processing of the sender address.
1762		Obscure.
1763	Fix a dangling else problem -- from Brian Bullen from University
1764		of Stirling, UK.
1765	Add the "b" mailer flag to force a blank line on the end of
1766		messages.  Some brilliant versions of /bin/mail insist
1767		on this but do not add it themselves.
1768	Add the "g" mailer flag to prevent user SMTP from sending
1769		"MAIL From:<>".  This is only intended to be a
1770		transitional gesture, and should not be used if at
1771		all possible.  It appears that Berkeley and IDA
1772		config files have always handled this properly; the
1773		UK config kit apparently does not.
1774	Don't lowercase and then capitalize header field names -- leave
1775		them with original capitalization.  Fixes from Bill
1776		King of Allen-Bradley Company.
1777	Further cleanup and improved reporting of error messages,
1778		particularly conditions that cause messages to be
1779		requeued for future delivery.
1780	Tweak syslog priorities in some cases.
1781	CONFIG: clean up route-addr on UUCP addresses.
1782
17836.55/6.25	93/04/27
1784	HPUX 8.07 compatibility changes in getla() -- I had to make
1785		these changes to get it to work at Berkeley, although
1786		others seem to have been working before (???).
1787	Various patches to XLA code.
1788	Fix problem that causes setuid bit on files to be ignored from
1789		SMTP or in queue runs.  Problem noted by Jason Ornstein
1790		of Under The Wire, Inc.
1791	Fix problem that can cause CNAMEs to be ignored.
1792	Generalize getmxrr to match local host in $=w instead of a
1793		single name passed in.
1794	Some cleanup from Eric Wassenaar:
1795		Use FileMailer instead of ProgMailer in two places.
1796		Eliminate duplicate 8th-bit stripping in commaize.
1797		Fix a problem with mis-parsing of backslash escapes
1798			under some circumstances.
1799	NIS map fix (was always including trailing null character)
1800		from Mike Glendinning of Ingres UK.
1801	Add "a" mailer flag to try using ESMTP.  It tries the EHLO
1802		command and if that fails falls back to regular SMTP.
1803		Also parses EHLO option keywords.  If host supports
1804		SIZE extension, this is added to the MAIL FROM:
1805		command.
1806	Extend "b" option to include a second value which is the
1807		maximum message size this server is willing to accept.
1808		For example, a value of "10/1000000" says that there
1809		must be ten blocks free, and sendmail will reject
1810		any message larger than one megabyte.
1811	Some portability hooks for NeXT (this could be applicable
1812		to Mach in general).  You have to create an empty
1813		file called "unistd.h" to get it to compile.
1814	Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to
1815		be more generous.
1816	Add X400-Received: to the list of headers tagged with H_TRACE
1817		in conf.c.  From Bill King, Allen-Bradley Co.
1818
18196.54/6.25	93/04/19
1820	Fix problem that caused redefinition of SMTP and QUEUE compile
1821		flags.  Pointed out by Jon Forrest of the Sequoia 2000
1822		project at Berkeley.
1823	Properly handle \! hack -- it was treating host\!user as one
1824		token (host!user) instead of three (host, !, user).
1825		Fix from Eric Wassenaar of NIKHEF-H.
1826	Fix compilation problem in getauthinfo() if IDENTPROTO is off.
1827	Turn off DEFNAMES and DNSRCH when getting the hostsignature
1828		(i.e., MX records) in level 1 configuration files; this
1829		matches the old behaviour.  From Motonori Nakamura of
1830		Kyoto University.
1831	Improve error message printing -- if sent through an alias,
1832		error messages include the name of the alias in the
1833		message.  Unfortunately, in order to make this work
1834		properly in queue runs, this changes the format of the
1835		C line in the qf file.  The relatively uselessness of
1836		the previous information was pointed out to me by
1837		Allan E Johannesen of WPI.
1838	Add XLA compile flag to add hooks to Christophe Wolfhugel's
1839		extended load average code.  This is still in very early
1840		form.  For information regarding the guts of the xla
1841		code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr.
1842	Additional hooks for detecting tempfails in rewriting rules
1843		(that is, in map lookups).
1844
18456.53/6.25	93/04/15
1846	Properly diagnose ruleset zero returning null (instead of a mailer
1847		triple).  From Motonori Nakamura of Kyoto University.
1848	More generalization of socket code for other protocols.
1849	Shorten timeouts on reverse name lookups -- since they are done
1850		during connection establishment, long timeouts here can
1851		cause higher level timeouts.  This mainly serves to accept
1852		mail from hosts that do not have proper reverse (PTR) DNS
1853		records set up.
1854	Reset e_statmsg before each mailer invocation to avoid bogus
1855		messages in the log.
1856	Redefine $r, $s, and $_ in error envelopes so you don't get
1857		incorrect cruft in the error message.  Problem noted by
1858		Motonori Nakamura of Kyoto University.
1859	Fix a problem that can cause failure to return errors to Postmaster
1860		in certain cases.  From Motonori Nakamura.
1861	Fix a problem that can cause some systems to give duplicate error
1862		messages when a bad syntax address such as "<a" is presented
1863		to an SMTP server.   It doesn't seem to occur on all
1864		machines.  From Motonori Nakamura.
1865	Default IDENTPROTO off for Ultrix and HPUX, which apparently have
1866		the interesting "feature" that when they receive a "Host
1867		unreachable" message they closes all open connections to
1868		that host.  However, some firewall gateways send this message
1869		if you try to connect to an unauthorized port, such as the
1870		IDENT port (113).  Thus, no email can be received from such
1871		hosts.  There is some evidence that versions of Ultrix before
1872		4.3 do not have this problem.  Thanks to Tom Ivar Helbekkmo
1873		for pointing out this behaviour to me and to Michael Corrigan
1874		of U.C. San Diego for informing me about the HPUX problem.
1875	Allow IPC mailers to return a colon-separated list of hosts in the
1876		$@ clause; these are searched in order as though they were
1877		MX records.
1878	When sending an error report, print the list of addresses tagged
1879		as bad.  Requested by Allan E Johannesen of WPI.
1880	Change map function calls to return a status code.  This gets
1881		passed back as the result of rewrite.  Parseaddr marks
1882		the address as a QUEUEUP address if the return code is
1883		EX_TEMPFAIL.  All this to queue properly if the name
1884		server is down.  This code is not well tested.  This code
1885		changes the interface to map lookup functions (a fifth
1886		parameter, int *statp, is added).  Feature requested by
1887		Dan Oscarsson.
1888	Don't delete quotes (in the dequote map) if there are spaces in
1889		the string, since this would cause them to be replaced by
1890		the SpaceSub character.
1891	Accept BODY=8BITMIME on SMTP MAIL command.  This isn't advertised
1892		because the 8BIT to 7BIT translation doesn't exist yet.
1893		This does add a "bodytype" field to both envelope and
1894		queue file and a -B command line flag to pass the type in
1895		during direct invocations.
1896	Discard return error messages only on responses to responses to
1897		responses, not on responses to responses.  That is, the
1898		algorithm is to try return to sender, then return to
1899		postmaster, then discard.  Previously it discarded
1900		immediately if the return to sender pass failed.
1901	CONFIG: back out change to hide unqualified hostnames behind %-hack.
1902		This screws up local aliases and .forward files.
1903	CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $];
1904		some sites only handle completely canonified names.
1905		Requested by John Gardiner Myers of CMU.
1906	CONFIG: some UUCP code was still included even if FEATURE(nouucp)
1907		was specified.
1908
19096.52/6.24	93/04/10
1910	Clean up some minor glitches on error return messages pointed out
1911		by Motonori Nakamura of Kyoto University.
1912	Fix reply() to not reset SmtpReplyBuffer on fatal errors; this
1913		was supposed to reset SmtpMsg Buffer.  This makes the
1914		client side code virtually useless.  Reported by Allan
1915		E Johannesen of WPI and Phil Brandenberger of Swarthmore.
1916	Better debug messages if fuzzy is disabled, suggested by Allan
1917		E Johannesen of WPI.
1918	Offset SmtpReplyBuffer by four in usersmtp when checking for
1919		loopback.  From Eric Wassenaar.
1920	Don't set $s until after runinchild in srvrsmtp -- otherwise
1921		it gets cleared.  From Eric Wassenaar.
1922	Implement IDA-style $&x for deferred macro expansion.
1923	More POSIX compatibility.
1924	CONFIG: Hide unqualified hostnames behind %-hack using $s as the
1925		actual sender.  This is only done if $r is non-null, that
1926		is, if this is not locally submitted mail.
1927	CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host
1928		names to internet domains.  A program contributed by
1929		John Gardiner Myers of CMU to create the maps is included
1930		in the contrib directory (in the "misc" tar file).
1931	CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP
1932		hosts.  There is currently no tool to create this map.
1933
19346.51/6.23	93/04/04
1935	Add D= mailer flag to specify a path of possible working directories
1936		in which to execute the mailer.  This is intended for the
1937		prog mailer; some shells can get upset if they don't have
1938		access to the current directory.
1939	Add RFC 1413 (IDENT) protocol support.  This is only very loosely
1940		tested.  This adds a $_ macro to be the authenticated
1941		info (in ``user@domain [address]'' form) and debug flag
1942		9 to trace the protocol.
1943	Check for loopbacks in usersmtp instead of srvrsmtp -- there is no
1944		reason for a local agent to not be talking to the localhost
1945		(although the inverse is not true).
1946	Add a few hooks for automated map rebuilding.  This is certainly
1947		not done yet.
1948	CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is,
1949		user's home directory then the root.
1950	CONFIG: Log RFC 1413 identification in Received: line.
1951
19526.50/6.22	93/04/01
1953	Fixes to requeueing code to make it compute priority, nrcpts,
1954		and the like properly.
1955
19566.49/6.22	93/04/01
1957	Diagnose incorrect privacy flags.  Suggested by Bryan Costales
1958		of ICSI.
1959	Some ANSI C fixes.
1960	Arrange to quote backslashes as well as other special characters
1961		in the phrase part of a route-addr.
1962	Some fixes to FallBackMX code suggested by Motonori Nakamura of
1963		Kyoto University.
1964	More vigorous zeroing of CurHostAddr to avoid logging of bogus
1965		host addresses when you are actually just printing
1966		information from the MCI structure; problem noted by
1967		Michael Corrigan of U.C. San Diego.
1968	Don't ignore rest of queue if any job is not runnable.  This can
1969		also cause an incorrect job to be lost.  Fix from
1970		Eric Wassenaar.
1971	Always respond "quickly" to RCPT command; do alias expansion and
1972		the like later.  This also means that mail for lists that
1973		have errors will be acccepted, and an error sent back
1974		later.  This is done by instantiating the queue file
1975		and then immediately running and requeueing it.
1976
19776.48/6.22	93/03/30
1978	Fix incorrect diagnosis of infinite loop in ruleset.  Problem noted
1979		by several people.
1980	Improve information printed when infinite loops are discovered.
1981	Zero CurHostAddr to fix erroneous internet addresses in log when no
1982		addresses can be bound.  Pointed out by Motonori Nakamura
1983		of Kyoto University.
1984	"Probe" SMTP connections using RSET instead of NOOP "just in case".
1985		Suggested by John Gardiner Myers of CMU.
1986	Don't warn about -f if you are setting sender to yourself.
1987
19886.47/6.22	93/03/29
1989	Fix incompatible call to endmailer in smtpquit which causes core
1990		dumps.  Noted by Allan E Johannesen of WPI.
1991	HPUX portability changes from Michael J. Corrigan of UC San Diego.
1992	Require MAIL before RCPT command in srvrsmtp.c.  This had been
1993		intentional from the 821 draft days when the order wasn't
1994		clear, but is silly now.
1995	Fix bug in nis_magic routine that was initializing parameters
1996		incorrectly.  Fix from Takahiro Kanbe of Fuji Xerox
1997		Information Systems Co., Ltd.
1998	Change default for PrivacyFlags in conf.c to 0 -- since it always
1999		"or"s in new values, there was no way to turn off the
2000		AuthWarning stuff.
2001	Add O option to set SMTP daemon options.
2002	Add V option to set fallback MX host.  This always sorts at lower
2003		priority than anything it gets from the name server.  It
2004		should only be used for environments with very bad network
2005		connectivity.  Requested by several people.
2006	Log sending info.  It's not clear this is a good idea.
2007	CONFIG: fix typo in mailertable code.  Noted by Phil Brandenberger
2008		of Swarthmore.
2009	CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options
2010		O and V, respectively.
2011
20126.46/6.21	93/03/26
2013	Fix botch in server SMTP that broke transactions that did not
2014		use HELO first (like MH).  Fix from Michael Corrigan
2015		of U.C. San Diego.
2016	Fall back to other MX records if there is an error anywhere
2017		in delivery (actually on MAIL or DATA -- RCPT is harder).
2018		Suggested by John Gardiner Myers and Motonori Nakamura.
2019	Revert to non-prototypes -- it turns out that our ANSI C
2020		compiler is more forgiving than most others about
2021		mixing prototyped extern declarations with non-prototyped
2022		function definitions.
2023	Fix a problem with multi-word class matching pointed out by
2024		Neil Rickert.  Given:
2025			CX b a.b.c
2026			R$+ $=X $+	$: $1 < $2 > $3
2027		the input "user@a.b.c" failed instead of being properly
2028		rewritten as "user@a.<b>.c".
2029	Neil also convinced me that it was correct that $~ should match
2030		only one token -- the problem is that it's always possible
2031		to add another token, so $~ matches far too eagerly.
2032
20336.45/6.21	93/03/25
2034	Implement multi-word classes (properly!).
2035
20366.44/6.21	93/03/25
2037	Add X-Authentication-Warning: headers to clue users into possible
2038		attempts to forge mail.  This is on the authwarnings
2039		privacy flag, but is the default.  Suggested by Bryan
2040		Costales of ICSI.
2041	Pass default units for convtime in so they can be more reasonable.
2042	Allow config files to always add a new Comments: header (i.e.,
2043		they will be added even if an old one already exists).
2044		Suggested by Bryan Costales of ICSI.
2045	Allow config files to delete an existing Return-Path: header.
2046		These should only be added at final delivery.  Suggested
2047		by Bryan Costales of ICSI.
2048	Some debugging additions.  Suggested by Bryan Costales of ICSI.
2049	Clean up logging of Family 0 addresses.  Noted by David Muir
2050		Sharnoff and others.
2051	Add a "dequote" map class.  This allows config files to strip
2052		quotes off of addresses.  Note that this is not a builtin
2053		map, just a class -- so you have to define the map
2054		using the K line.
2055	Fix a bug in the queueup() loop getting a locked tf where in
2056		very odd cases it can fall off the bottom and core dump.
2057		Of course, it was P{r Emanuelsson who found it....
2058	Open a new transcript when splitting an envelope.  Problem found
2059		by Allan E Johannesen of WPI.
2060	Improved error output in endmailer if the mailer core dumps.
2061	CONFIG: Fix typo in UUCP mailer definition.
2062	CONFIG: Default several of the new options on: eight bit input,
2063		privacy flags set to "authwarnings", and message warning
2064		set to 4h.
2065	CONFIG: Use dequote map.
2066
20676.43/6.20	93/03/23
2068	Fix problem with assumption of an sa_len field in a generic
2069		sockaddr -- it turns out that most vendors haven't
2070		picked up this (very important) fix.
2071	Change compilation flags for daemon code -- select one or both
2072		of NETINET or NETISO, but don't ever set DAEMON manually.
2073	CONFIG: add FEATURE(mailertable) to do IDA-style mailertables.
2074
20756.42/6.19	93/03/19
2076	Use Postmaster as default fallback return address, not root.
2077	POSIX changes for file descriptor handling.
2078	Diagnose errors writing new queue file.
2079	If you change the owner using an owner- alias, also change the
2080		error mode to EM_MAIL so that errors don't get dropped
2081		into an inappropriate directory.  Problem noted by
2082		Allan E Johannesen of WPI.
2083	If you are su'ed to root, send email as who you really are, not
2084		as root.  From Brian Kantor of U.C. San Diego.
2085	Allow warning messages to be sent after a configurable interval
2086		has passed without delivery.  The message is sent only
2087		once per envelope.  This changes the format of the qf
2088		file to have an F line, and the format of the T option
2089		to accept take the format "return/warn" (both intervals).
2090	Don't force all local names to lower case -- this was left over
2091		from the wierd handling of case mapping on aliases.  It
2092		is now driven (as expected) by the "u" mailer flag.
2093		Problem noted by P{r Emanuelsson.
2094	Fix problem that caused headers on returned email to be trashed;
2095		they were getting freed, but are still accessible via
2096		BlankEnvelope.
2097	Fix problem that caused bogus ids to be created on returned
2098		mail.
2099	Add support for ISO and other non-INET networking.  This is by
2100		no means finished yet.  This does assume a lot of other
2101		system support, like a version of gethostbyname that
2102		returns non-AF_INET addresses.
2103	CONFIG: change default on prog mailer to keep upper case in
2104		user names (i.e., in the program command line).
2105	CONFIG: strip trailing dots off of hosts in uucp mailer before
2106		convert to bang format.
2107	CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H
2108		(MAIL_HUB) delivery that doesn't add local domain.  Note
2109		that this violates 821, but is probably "more correct"
2110		for what we are trying to do.  Problem pointed out by
2111		Michael Graff of Iowa State.
2112
21136.41/6.18	93/03/18
2114	Clean up unnecessary creates of queue ids (i.e., empty qf files)
2115		when not needed, such as when starting up an SMTP
2116		connection.
2117	Fix problem where split envelopes aren't instantiated in the queue.
2118		This is quite a serious bug.
2119	Owner- aliases had problems with leading spaces causing a
2120		premature delimitation.
2121
21226.40/6.18	93/03/18
2123	Have ending 250 (after DATA) include the id; suggested by
2124		Brian Kantor of UC San Diego.
2125	Add logging on envelope splitting.
2126	Change queue ids to have one more letter encoding the hour of
2127		the day so that during a single day there is a greater
2128		likelihood of uniqueness; requested by Brian Kantor.
2129
21306.39/6.18	93/03/18
2131	Fix minor compile problem if LOCKF is defined.
2132	Define size of tobuf in conf.h.  Observed by Toshinari Takahashi
2133		of Toshiba.
2134	Restore e_sender -- this is equivalent to e_from.q_paddr without
2135		decorations such as angle brackets and comments.
2136	OSF/1 on Alpha changes from Allan E Johannesen of WPI.
2137	CONFIG: fix typo in S3 for list syntax (;: => :;).  Thanks to
2138		Christopher Hoover for noting the problem.
2139
21406.38/6.17	93/03/17
2141	Pass envelope to disconnect to avoid another use of CurEnv, which
2142		can apparently end up being null at inopportune times.
2143	Log "received from" as "relay=" for consistency (suggested by
2144		John Gardiner Myers).
2145	Fix major bug in header handling:  if no From: line existed in
2146		the header (so sendmail inserts one), and the sender is
2147		an alias that has an owner, the From: line shows the
2148		owner (as well as the envelope).  Fixed by early binding
2149		the headers (which will change debugging output).
2150	HPUX portability patches from Michael J. Corrigan of UC San Diego.
2151	Some attempts to adapt better to out of open file conditions.
2152	Some changes to ctladdr handling in queue files.
2153
21546.37/6.17	93/03/16
2155	MAJOR CHANGE:  delete e_sender and e_returnpath (why are these
2156		different from e_from?) and $< macro.
2157	Log correct IP address in relay= field even if the connection
2158		times out.
2159	Log "received from [RESPONSE]" on EF_RESPONSE messages (from
2160		John Gardiner Myers).
2161	Fixes to SysExMsg logging (sometimes just got "message: %s"
2162		instead of "message: error message"), noted by Eric
2163		Wassenaar.  Also reported by Motonori Nakamura.
2164	Improvements to MX piggybacking code, from Motonori Nakamura.
2165	Fix case where CurHostName points to an auto variable that has
2166		been deallocated (from Motonori Nakamura).
2167	Fix bug causing newlines to be included in aliases if option
2168		"n" (check alias RHS) is set; bug noted by David Muir
2169		Sharnoff.
2170	Fix problem causing user names that should be mapped to lower
2171		case to not be mapped if they are sent during a queue
2172		run.  This greatly simplifies the case mapping code.
2173		Problem noted by Allan E Johannesen of WPI.
2174	Don't do recipient address rewriting in buildaddr.  This
2175		improperly did recipient rewriting on sender addresses,
2176		and just seems bogus in general -- but the change could
2177		break some .cf files.
2178	Pass TZ envariable to child processes for System V.
2179	CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to
2180		define those rulesets.
2181	KNOWN PROBLEM:  I have seen some problems on SunOS that causes
2182		the User Data Base to give errors on some addresses.  I
2183		have tracked the problem back at least as far as 93.02.15
2184		(version 6.22).  Running with debugging on makes it
2185		go away, so I conclude that it is referencing uninitialized
2186		stack data.  I haven't been able to track this down yet.
2187
21886.36/6.16	93/03/08
2189	Allow local mailer to specify $@host -- this lets you assign the
2190		"foo" part of jgm+foo to $h for passing in to the local
2191		mailer.
2192	Additional debug printing in getcanonname (show query type).
2193	Don't add the e_fromdomain on sender addresses -- this interacts
2194		wierdly with the owner- code.
2195	Improve delivery logging to not log obvious or meaningless stuff.
2196	Include numeric IP address in Received: lines per RFC 1123 section
2197		5.2.8.
2198	Fixed a bug in checking stat() return value if restrictmailq is
2199		set.  Also, check the entire group set instead of just the
2200		primary group.  Both from John Gardiner Myers.
2201	Don't have usrerr automatically print errno, since this is often
2202		misleading.
2203	Use transienterror() in makeconnection after connect() fails and
2204		in openmailer after execve() fails (from Eric Wassenaar).
2205		Also moved transienterror() from util.c to conf.c.
2206	Clean up from= logging on response messages.
2207	Undo patch allowing prescan to return a null vector -- it breaks
2208		too many things.
2209	Config: FEATURE(notsticky) lets you use UDB for everything coming
2210		in to the machine, even if it is specifically targetted
2211		to this machine.  Without it, UDB is bypassed if the user
2212		name is fully qualified.
2213	Config: fix another minor botch with <> (local mailer wasn't
2214		mapping them properly).
2215
22166.35/6.15	93/03/05
2217	Fix getrealhostname to return null if sinlen <= 0 -- this can
2218		occur if stdin is a pipe.
2219	Avoid infinite loop in getcanonname if name server return
2220		NO_DATA (for example).
2221	Config: avoid having C flag qualify list syntax and error syntax.
2222
22236.34/6.14	93/03/05
2224	Fix logging in deliver to not pass too many parameters to Ultrix
2225		versions of syslog.
2226	Don't write the pid file until after the daemon has actually
2227		opened and conditioned the connection.
2228	Consider addresses "different" if their q_uids differ (so that
2229		two users forwarding to the same program will be seen
2230		as different, rather than the same).
2231	Fix problem with bad parameters in main() -- they set ExitStat
2232		but don't exit.
2233	Fix null pointer references through RealHostName -- painfully
2234		discovered by Allan E Johannesen of WPI.
2235	Fix bug causing user@@localhost to core dump (yuch).
2236	Config: don't put two @host.dom.ain on users in $=E in SMTP
2237		mailer.  Also, catch user@ (no host) in ruleset 0.
2238
22396.33/6.13	93/03/03
2240	Config: add confCW_FILE as the name of the cw configuration file
2241		(defaults to /etc/sendmail.cw).  From P{r Emanuelsson.
2242	Allow prescan to return a pointer to an empty list -- this is
2243		not an error.  Also, clean up error reporting to avoid
2244		double errors (prescan reports once, then the caller
2245		reports again).
2246	Changes to avoid trusting T_ANY queries -- run them, but if you
2247		don't get the info you expected, do T_A and T_MX queries
2248		anyhow.  This also fixes an oversight where _res.options
2249		bits were being ignored.
2250	If PRIV_NOVRFY is set, use 252 response code instead of 502 per
2251		RFC 1123 section 5.2.3.  It's not 100% clear that this
2252		is correct, but it probably works better with stupid
2253		mailers that do a VRFY and only check the first digit.
2254
22556.32/6.12	93/03/02
2256	Fix uninitialized variable "protocol" in smtp code.
2257	Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI.
2258	Additional hooks for RFC 1427 (ESMTP SIZE extension).  This
2259		includes requiring that enoughspace() know the system
2260		block size, which will undoubtedly break most ports.
2261	Trace flag 19 in use for srvrsmtp.c.
2262	Additional logging -- notably the sending mailer name.  This
2263		also changes the delivery logging to strict field=value
2264		syntax.
2265	Fix some problems with messages getting sent even to addresses
2266		that had been marked bad -- from Eric Wassenaar.
2267	More WIDE changes: accept host name inside [...] as non-MXed
2268		host.  This is intended ONLY for use inside firewalled
2269		environments, where the MX points at the gateway.
2270	Change .cf file conventions so that mapping for <> addresses
2271		don't have an @ in them (to avoid confusing the C mailer
2272		flag).  Pointed out by Neil Rickert.
2273	Config extensions for Sam Leffler's FlexFAX software.
2274
22756.31/6.10	93/02/28
2276	Fix some more bugs in alias owner code -- there were some wierd
2277		cases where an error in a non-aliased name would override
2278		the return info in an aliased name with an owner.
2279	Changes from WIDE Project, forwarded to me by Motonori Nakamura:
2280		Log actual delivery host (after MX et al); from
2281			yasuhiro@dcl.co.jp.
2282		Log daemon startup.
2283		Deliver Postmaster copies without a body.
2284		Better logging of SMTP senders.
2285		Send all program email as daemon even when local.
2286	As requested in various forms from many people, accept -qIstring
2287		to limit queue runs to jobs with queue-id matching string.
2288		Similarly for -qRstring for recipients, -qSstring for
2289		senders.
2290	Initial hooks for ESMTP support (see RFC 1425).
2291	Fixed a syntax error in the UUCP mailer specification that caused
2292		core dumps on startup.
2293	Check for missing A= or P= arguments in mailer definitions.
2294
22956.30/6.10	93/02/27
2296	Require FROZENCONFIG compilation flag to include frozen
2297		configuration code.  Frozen configuration is really
2298		not a very good idea any more, particularly in shared
2299		library environments.
2300	Do better checking of errno after opens of :include: and .forward
2301		files to defer delivery on network and other transient
2302		errors.  Suggestion from Craig Everhart.
2303	Fix minor botch in read timeout macro processing.
2304	Add FEATURE(nouucp) to config files for sites that know absolutely
2305		nothing about UUCP.
2306	Add built cf files to distribution tape and clarify how to build
2307		them if you don't have the Berkeley make.
2308	Some sizeof(long) portability changes for the Alpha, from Allan
2309		E Johannesen.
2310	Add "restrictmailq" privacy flag -- if set, only people in the same
2311		group as your queue directory can print the queue.  If you
2312		set this, be sure you also restrict access to log files....
2313	Fix another bug in owner-list stuff that can cause data files to
2314		be "lost".
2315	Fix a bug with queue runs that cause forwards to yourself to go
2316		into alias/forwarding loops.  I'm still iffy about this
2317		fix.
2318	Fix from Eric Wassenaar for suppression of return message code.
2319
23206.29/6.9	93/02/24
2321	Fix yet another problem in alias owner code -- put the wrong return
2322		address on the enclosed return-to-sender letter.
2323
23246.28/6.9	93/02/24
2325	Fix botch in alias owner code that caused it to not operate if the
2326		error was detected locally.
2327
23286.27/6.9	93/02/24
2329	M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include
2330		file <sys/mount.h>.
2331	Miscellaneous bug fixes from Eric Wassenaar:
2332		sendmail -bv -t logs the from line even though in verify
2333			mode only.
2334		sendmail -v can go into queue mode if shouldqueue returns
2335			TRUE.
2336	Add route-addr pruning per RFC 1123 section 5.3.3.  This can be
2337		disabled using the "R" option.
2338	Delete (always undocumented) -R flag (save original recipients);
2339		there are ways to syslog(3) these now.
2340	Clean up SMTP reply codes -- specify them as needed in the code,
2341		instead of in conf.c -- this was needed during the NCP to
2342		TCP transition, but seems silly now.  This also changes
2343		parameters to message and nmessage.
2344	Have mailstats read the .cf file to find the sendmail.st file and
2345		get text versions of mailer names.  An initial version of
2346		this code was provided by Tuominen Keijo (although the
2347		comments indicate the good bits were written by "E.V.").
2348	Add yet more System V compatibility hacks.
2349	Fix bug in VRFY code (assumes everything must be a local user).
2350	Allow specification of any of the hard-wired pathnames in the
2351		Makefile.
2352	Delete concept of "trusted users" -- this really didn't provide
2353		any security anyway, and caused some problems.
2354	Delete last vestige of support for the word "at" as an equivalent
2355		to the character "@".
2356	Propagate owner-foo alias information into the envelope sender.
2357		Based on code from John Gardiner Myers.  This is a major
2358		semantic change -- beware!
2359	Allow $@ on LHS to indicate "match zero" -- this is used to match
2360		the null expression.
2361
23626.26/6.8	93/02/21
2363	Don't "lose" queue runs.  Very important fix from (who else?)
2364		Eric Wassenaar.
2365	Completely reset state on RSET command -- from Eric Wassenaar.
2366	Send error messages and return receipts using an envelope sender
2367		of <> regardless of the setting of $n.  Rewriting rules
2368		can undo this if they feel the necessity, as might be
2369		needed for networks that don't understand the syntax.
2370		This is permitted by RFC 821 section 3.6 and required by
2371		RFC 1123 section 5.3.3.  THIS REQUIRES VERSION 4 CONFIG
2372		FILES because the rulesets must be able to parse <>
2373		properly.
2374	Don't ever send error messages to "<>" -- they will get sent to
2375		the local postmaster or dumped in /usr/tmp/dead.letter
2376		instead.  Per RFC 1123 section 5.3.3.
2377	Explicitly check for email to yourself as a dotted quad.  You
2378		have to call $[ [ ... ] $] to get this.
2379	Up the message timeout to five days per RFC 1123 section 5.3.1.1.
2380	Make all read timeouts individually configurable, as strongly
2381		recommended by RFC 1123 section 5.3.2.
2382	Use f_bavail (blocks available to regular users) instead of f_bfree
2383		(blocks available to superuser) in free block checks.
2384	Change $d macro to be the current time, not the origination time,
2385		since this is consistent with how it is used now.
2386	Generalization of enoughspace from Eric Wassenaar covering
2387		SGI, Apollo, HPUX, Ultrix, and SunOS.
2388	Ignore process group signals -- some front ends can do this if
2389		you kill a window too quickly.  From Eric Wassenaar.
2390	Change umask to 022.
2391
23926.25/6.8	93/02/20
2393	Close all cached connections before calling mailers and after
2394		forking for delivery (caused double closes which resulted
2395		in false errors).
2396	Add FEATURE(redirect) in config files -- this allows you to alias
2397		old addresses to a pointer to the new address that will
2398		give a 551 error message, but not deliver the mail.
2399	Some code changes to make the 551 errors look pretty.
2400	Names of M4 program paths in config files have changed -- they
2401		are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS.
2402	Fix a bug in the QSELFREF code having to do with empty .forward
2403		files, reported by Eric Wassenaar.
2404	Add option "p" (privacy flags); this allows you to tune how
2405		picky the SMTP server will be.  This also adds the
2406		confPRIVACY_FLAGS M4 macro in the config files.
2407	Add option "b" (minimum blocks free).  If there are fewer than
2408		this number of blocks free on the filesystem containing
2409		the queue directory, the SMTP MAIL command will return
2410		a 452 response and ask you to try again later.  This
2411		also adds the confMIN_FREE_BLOCKS M4 macro in the config
2412		files.
2413	Made VRFY just verify (doesn't expand aliases and .forward files);
2414		EXPN does full expansion.  RCPT in queue-only mode also
2415		doesn't chase aliases and .forward.
2416
24176.24/6.7	93/02/19
2418	Increase the number of domain search entries in domain.c to allow
2419		for the extra "" entry indicating the root domain.
2420		Reported by Motonori Nakamura of Kyoto U.
2421	Add a "SMART_HOST" in the configs for UUCP-connected sites that
2422		want to forward all mail with extra "@"s to that site.
2423		Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to
2424		be specified as ``mailer:hostname'' to use an alternate
2425		mailer.
2426	Clarified and updated some wording in the Operations Guide.
2427	Add the "c" mailer flag -- this suppresses all comment parts of
2428		addresses (requested by John Curran of NEARnet).
2429	Have -v print prompts in -bt mode even if stdin is not a terminal
2430		(default behaviour is to be silent if not reading from
2431		a terminal).  Suggested by Bryan Costales, ICSI.
2432	Move the metacharacters from C0 space (\001-\037) into C1 space
2433		(\201-\237).  This also fixes a bunch of potential bugs
2434		with G1 characters (\240-\276) in headers relating to
2435		negative numbers passed to isspace() et al.
2436	Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias
2437		database if YPCOMPAT is #defined.  Enhancement from
2438		Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd.
2439	Add "list" Precedence (-30); this can be used with old sendmails
2440		which will map to precedence 0 (which will return error
2441		messages).  Suggested by Stephen R. van den Berg.
2442	Many bug fixes from Eric Wassenaar of the National Institute for
2443			Nuclear and High-Energy Physics, Amsterdam:
2444		Clear timeouts properly on open failures in include().
2445		Don't dereference through NULL if no home directory found.
2446		Re-establish SIGCHLD signal on System 5 in reapchild().
2447		Avoid NULL pointer reference on -pFOO flag.
2448		Properly handle backslash escapes in comments.
2449		Correctly check reply status on SMTP NOOP command.
2450		Properly save SMTP error message if peer gives
2451			"Service Shutting Down" message.
2452		Avoid writing to the transcript if it couldn't be opened.
2453		Signal errors in SMTP children to parent properly.
2454	Handle self references in a list more globally (include a
2455		QSELFREF bit in the address flags).  This enhancement
2456		was suggested by Eric Wassenaar.
2457	Use initgroups() in hpux, even though it's System-V based.  The
2458		HASINITGROUPS compile flag can set this on other systems.
2459		This HPUX behaviour was pointed out by Eric Wassenaar.
2460
24616.23/6.6	93/02/16
2462	Clean up handling of LogLevel to make it easier to figure out
2463		what's on what level.
2464	Change log levels to have some consistency:
2465		1    serious system failures, security problems
2466		2    lost communications, protocol failures
2467		3    other serious failures
2468		4    minor errors
2469		5    message collection
2470		6    vrfy logging, creation of return-to-sender
2471		7    delivery failures
2472		8    delivery successes
2473		9    delivery tempfails (queue ups)
2474		10   database expansion
2475		>64  debugging
2476	Allow IDA-style separated processing on S= and R= in Mailer
2477		definition lines.  Note that rulesets 1 and 2 are
2478		still used for both addresses as before.  Bruce Lilly
2479		gave a convincing argument that RFC976 insists on
2480		this behaviour.
2481	Added some time zones to arpatounix -- they may not be in the
2482		standards, but they are in use.  However, I may delete
2483		arpatounix entirely -- there appears to be no reason
2484		for it to exist.
2485	Change to UUCP mailer (in cf directory) to try to do a saner job.
2486		I'm still not certain about this mailer in general.
2487
24886.22/6.5	93/02/15
2489	Fix bug that prevents saving letters in ~/dead.letter.
2490	Don't add angle brackets in VRFY command if angle brackets already
2491		exist in the address.
2492	Fix bogus error message in udbexpand.
2493	Null terminate host buffers in buildaddr (broken in 6.21) --
2494		IMPORTANT FIX!!
2495
24966.21/6.5	93/02/15
2497	Fix another incorrect error message in alias.c, found by Azuma
2498		Okamoto.
2499	Fix a couple of problems in the more-configurable config files,
2500		found by Tom Ivar Helbekkmo.
2501	Fix problem with quoted :include: entries.
2502	Don't duplicate the filename on verbose printing of .forward and
2503		:include: contents.
2504	Extend size of prescan buffer (to allow bigger addresses).  Also,
2505		detect some buffer overflows.
2506	Log user SMTP protocol errors (log level 4).
2507
25086.20/6.4	93/02/14
2509	Fix another problem in the MCI state machine caused when there
2510		were errors generated from the other end to commands
2511		other than RCPT.
2512
25136.19/6.4	93/02/14
2514	Include load average support for DEC Alpha running OSF/1.
2515	Fix multiple-response problem with errors in MAIL From: line.
2516	Fix SMTP reply codes for invalid address syntaxes (give 501;
2517		never give multiple error messages for a single message).
2518	Fix problem where a cached connection timeout rejects all
2519		later connects to that host.
2520	Fix incorrect error message if alias.c is compiled with DBM only.
2521	Additional changes to fix nested conditionals (from Bruce Lilly).
2522	Recover more gracefully from operating system failures, particularly
2523		NULL returns from openmailer (from Noritoshi Demizu,
2524		OMRON Corporation).
2525	Log forward, alias, and userdb expand operations on log level 10;
2526		concept suggested by P{r (Pell) Emanuelsson.
2527	Changes for HPUX 8.07 compatibility.
2528
25296.18/6.4	93/02/12
2530	Allow any config option to be set using an M4 define.
2531	Change UNAME compile flag to HASUNAME for IDA compatibility
2532		(besides, it's a better name).
2533	Note in README that on SunOS it must be linked -Bstatic.
2534	Fairly major change in domain.c to handle wildcard MX records
2535		more rationally.  NOTE: the "w" option (no wildcard MX
2536		records match local domain) has been eliminated.
2537	Fix some unset variable references pointed out by Bruce Lilly.
2538	Fix host name in process titles when using cached connection.
2539
25406.17/6.3	93/01/28
2541	Fix System 5 compatibility changes to be compatible with the rest
2542		of the world.
2543
25446.16/6.3	93/01/28
2545	Experimental fix for problem handling errors in the SMTP
2546		protocol in conjunction with connection caching.
2547	System 5 compatibility changes.
2548
25496.15/6.3	93/01/26
2550	Fix a bug that causes local mail delivered using -odq to be
2551		eliminated as a duplicate (because it matched the
2552		ctladdr, now passed in as a C line).  These changes
2553		are pretty tricky......
2554
25556.14/6.3	93/01/25
2556	Add debugging for some MCI errors.
2557
25586.13/6.3	93/01/22
2559	Fix -e compatibility flag to take a value.
2560	Fix a couple of minor compilation warnings on Sun cc.
2561	Improve error messages in a few cases to be more self-explanatory.
2562
25636.12/6.3	93/01/21
2564	Fix yet-another problem with environment handling, pointed out
2565		by Yoshitaka Tokugawa and Tom Ivar Helbekkmo.
2566	Some heuristics to try to limit resource exhaustion problems
2567		if a downstream host has been down for a long time.
2568	Fix problem with incorrect host name being logged in "Connection
2569		timed out" messages (from Tom Ivar Helbekkmo).
2570	Fix some ANSI C problems (from Takahiro Kanbe).
2571	Properly log message sender on returned mail during queue run.
2572	Count number of recipients properly.
2573	Fix a problem in yp map code.
2574	Diagnose "message timed out" (from Motonori Nakamura).
2575
25766.11/6.3	93/01/20
2577	Fix problem with address delimitor inside quotes.
2578	Define $k and $=k to be the UUCP name (from the uname call)
2579		based on code from Bruce Lilly.
2580
25816.10/6.2	93/01/18
2582	Implement arpatounix (largely code from Bruce Lilly).
2583	Log more info (suggested by John Myers).
2584	Allow nested $?...$|...$. (inspired by code from Bruce Lilly of
2585		Sony US).
2586	POSIX compatibility (noted by Keith Bostic).
2587	Handle SMTP MAIL command errors properly (urged by several people,
2588		notably John Myers of CMU).
2589	Do early diagnosis of .cf errors (notably referencing a RHS
2590		substitution that isn't on the LHS).
2591	Adjust checkpointing to better handle batched recipients, suggested
2592		by John Myers.
2593	Fix miscellaneous bugs.
2594	(config files:)  Implement MAIL_HUB for all local mail (to handle
2595		NFS-mounted directories) as urged by Tom Ivar Helbekkmo
2596		of the Norwegian School of Economics.
2597
25986.9/6.1 	93/01/13
2599	Environment handling simplification/bug fix -- child processes
2600		get a minimal, fixed environment.  This avoids different
2601		behaviour in queue runs.
2602	Handle commas inside comments properly.
2603	Properly limit large messages submitted in -obq mode.
2604
26056.8/6.1		93/01/10
2606	Check mtime of thaw file against .cf and sendmail binary, based on
2607		code from John Myers.
2608
26096.7/6.1		93/01/10
2610	MX piggybacking, based on code from John Myers@CMU.
2611	Allow checkcompat to return -1 to mean tempfail.
2612	Bug fix in m_mno computation.
2613
26146.6/6.1		93/01/09
2615	Tuning of queueing functions as recommended by John Gardiner Myers.
2616	Return mail headers (no body) on messages with negative precedence.
2617	Minor other bug fixes.
2618
26196.5/6.1		93/01/03
2620	Fix botch causing queued headers to have ?XX? prefixes.
2621
26226.4/6.1		93/01/02
2623	Changes to recognize special mailer types (e.g., file) early.
2624
26256.3/6.1		93/01/01
2626	Pass timeouts to sfgets.
2627	Check for control characters in addresses.
2628	Fixed deferred error reporting.
2629	Report duplicate aliases.
2630	Handle mixed case recursive aliases.
2631	Misc bug fixes.
2632
26336.2/6.1		92/12/30
2634	Put return-receipt-to on a conf.c flag (but don't set it).
2635	Fix minor syslog problem.
2636