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