insist on a dot in our hostname if you are running DNS
[unix-history] / usr / src / usr.sbin / sendmail / RELEASE_NOTES
CommitLineData
05ea1abf 1 SENDMAIL RELEASE NOTES
88d64753 2 @(#)RELEASE_NOTES 8.6.8.1 (Berkeley) %G%
05ea1abf
EA
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
88d64753
EA
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
f1b59013
EA
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
05ea1abf
EA
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
9f8f2626
EA
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
fe9d9e06
EA
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
cff7cd2b
EA
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
1f1a0c7e
EA
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
df8cc2e6
EA
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
cb2e7bc6
EA
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
33265b86
EA
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
a938aa3d
EA
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
bfe08ec1
EA
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
c6447398
EA
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.