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