166352Seric SENDMAIL RELEASE NOTES 2*68280Seric @(#)RELEASE_NOTES 8.6.10.2 (Berkeley) 02/10/95 366352Seric 466352SericThis listing shows the version of the sendmail binary, the version 566352Sericof the sendmail configuration files, the date of release, and a 666352Sericsummary of the changes in that release. 766352Seric 8*68280Seric8.6.10/8.6.10 95/02/10 968274Seric SECURITY: Diagnose bogus values to some command line flags that 1068274Seric could allow trash to get into headers and qf files. 1168274Seric Validate the name of the user returned by the IDENT protocol. 1268274Seric Some systems that really dislike IDENT send intentionally 1368274Seric bogus information. Problem pointed out by Michael Bushnell 1468274Seric of the Free Software Foundation. Has some security 1568274Seric implications. 1668274Seric Fix a problem causing error messages about DNS problems when 1768274Seric the host name contained a percent sign to act oddly 1868274Seric because it was passed as a printf-style format string. 1968274Seric In some cases this could cause core dumps. 2068274Seric Avoid possible buffer overrun in returntosender() if error 2168274Seric message is quite ling. From Fletcher Mattox of the 2268274Seric University of Texas. 2368274Seric Fix a problem that would silently drop "too many hops" error 2468274Seric messages if and only if you were sending to an alias. 2568274Seric From Jon Giltner of the University of Colorado and 2668274Seric Dan Harton of Oak Ridge National Laboratory. 2768274Seric Fix a bug that caused core dumps on some systems if -d11.2 was 2868274Seric set and e->e_message was null. Fix from Bruce Nagel of 2968274Seric Data General. 3068274Seric Fix problem that can still cause df files to be left around 3168274Seric after "hop count exceeded" messages. Fix from Andrew 3268274Seric Chang and Shau-Ping Lo of SunSoft. 3368274Seric Fix a problem that can cause buffer overflows on very long 3468274Seric user names (as might occur if you piped to a program 3568274Seric with a lot of arguments). 3668274Seric Avoid returning an error and re-queueing if the host signature 3768274Seric is null; this can occur on addresses like ``user@.''. 3868274Seric Problem noted by Wesley Craig and the University of 3968274Seric Michigan. 4068274Seric Avoid possible calls to malloc(0) if MCI caching is turned 4168274Seric off. Bug fix from Pierre David of the Laboratoire 4268274Seric Parallelisme, Reseaux, Systemes et Modelisation (PRiSM), 4368274Seric Universite de Versailles - St Quentin, and Jacky 4468274Seric Thibault. 4568274Seric Make a local copy of the line being sent via senttolist() -- in 4668274Seric some cases, buffers could get trashed by map lookups 4768274Seric causing it to do unexpected things. This also simplifies 4868274Seric some of the map code. 4968274Seric 5066956Seric8.6.9/8.6.9 94/04/19 5166920Seric Do all mail delivery completely disconnected from any terminal. 5266920Seric This provides consistency with daemon delivery and 5366920Seric may have some security implications. 5466920Seric Make sure that malloc doesn't get called with zero size, 5566920Seric since that fails on some systems. Reported by Ed 5666920Seric Hill of the University of Iowa. 5766920Seric Fix multi-line values for $e (SMTP greeting message). Reported 5866920Seric by Mike O'Connor of Ford Motor Company. 5966920Seric Avoid syserr if no NIS domain name is defined, but the map it 6066920Seric is trying to open is optional. From Win Bent of USC. 6166920Seric Changes for picky compilers from Ed Gould of Digital Equipment. 6266920Seric Hesiod support for UDB from Todd Miller of the University of 6366920Seric Colorado. Use "hesiod" as the service name in the U 6466920Seric option. 6566920Seric Fix a problem that failed to set the "authentic" host name (that 6666920Seric is, the one derived from the socket info) if you called 6766920Seric sendmail -bs from inetd. Based on code contributed by 6866920Seric Todd Miller (this problem was also reported by Guy Helmer 6966920Seric of Dakota State University). This also fixes a related 7066996Seric problem reported by Liudvikas Bukys of the University of 7166996Seric Rochester. 7266920Seric Parameterize "nroff -h" in all the Makefiles so people with 7366920Seric variant versions can use them easily. Suggested by 7466920Seric Peter Collinson of Hillside Systems. 7566920Seric SMTP "MAIL" commands with multiple ESMTP parameters required two 7666920Seric spaces between parameters instead of one. Reported by 7766920Seric Valdis Kletnieks of Virginia Tech. 7866920Seric Reduce the number of system calls during message collection by 7966920Seric using global timeouts around the collect() loop. This 8066920Seric code was contributed by Eric Wassenaar. 8166920Seric If the initial hostname name gathering results in a name 8266920Seric without a dot (usually caused by NIS misconfiguration) 8366920Seric and BIND is compiled in, directly access DNS to get 8466920Seric the canonical name. This should make life easier for 8566920Seric Solaris systems. If it still can't be resolved, and 8666920Seric if the name server is listed as "required", try again 8766920Seric in 30 seconds. If that also fails, exit immediately to 8866920Seric avoid bogus "config error: mail loops back to myself" 8966920Seric messages. 9066920Seric Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error 9166920Seric message to explain how much space was available and 9266920Seric sound a bit less threatening. Suggested by Stan Janet 9366920Seric of the National Institute of Standards and Technology. 9466920Seric If mail is delivered to an alias that has an owner, deliver any 9566920Seric requested return-receipt immediately, and strip the 9666920Seric Return-Receipt-To: header from the subsequent message. 9766920Seric This prevents a certain class of denial of service 9866920Seric attack, arguably gives more reasonable semantics, and 9966920Seric moves things more towards what will probably become a 10066920Seric network standard. Suggested by Christopher Davis of 10166920Seric Kapor Enterprises. 10266920Seric Add a "noreceipts" privacy flag to turn off all return receipts 10366920Seric without recompiling. 10466920Seric Avoid printing ESMTP parameters as part of the error message 10566920Seric if there are errors during parsing. This change is 10666920Seric purely cosmetic. 10766920Seric Avoid sending out error messages during the collect phase of 10866920Seric SMTP; there is an MVS mailer from UCLA that gets 10966920Seric confused by this. Of course, I think it's their bug.... 11066920Seric Check for the $j macro getting undefined, losing a dot, or getting 11166920Seric lost from $=w in the daemon before accepting a connection; 11266920Seric if it is, it dumps state, prints a LOG_ALERT message, 11366920Seric and drops core for debugging. This is an attempt to 11466920Seric track down a bug that I thought was long since gone. 11566920Seric If you see this, please forward the log fragment to 11666920Seric sendmail@CS.Berkeley.EDU. 11766920Seric Change OLD_NEWDB from a #ifdef to a #if so it can be turned off 11866920Seric with -DOLD_NEWDB=0 on the command line. From Christophe 11966920Seric Wolfhugel. 12066920Seric Instead of trying to truncate the listen queue for the server 12166920Seric SMTP port when the load average is too high, just close 12266920Seric the port completely and reopen it later as needed. 12366920Seric This ensures that the other end gets a quick "connection 12466920Seric refused" response, and that the connection can be 12566920Seric recovered later. In particular, some socket emulations 12666920Seric seem to get confused if you tweak the listen queue 12766920Seric size around and can never start listening to connections 12866920Seric again. The down side is that someone could start up 12966920Seric another daemon process in the interim, so you could 13066920Seric have multiple daemons all not listening to connections; 13166920Seric this could in turn cause the sendmail.pid file to be 13266920Seric incorrect. A better approach might be to accept the 13366920Seric connection and give a 421 code, but that could break 13466920Seric other mailers in mysterious ways and have paging behaviour 13566920Seric implications. 13666920Seric Fix a glitch in TCP-level debugging that caused flag 16.101 to 13766920Seric set debugging on the wrong socket. From Eric Wassenaar. 13866920Seric When creating a df* temporary file, be sure you truncate any 13966920Seric existing data in the file -- otherwise system crashes 14066920Seric and the like could result in extra data being sent. 14166920Seric DOC: Replace the CHANGES-R5-R8 readme file with a paper in the 14266920Seric doc directory. This includes some additional 14366920Seric information. 14466920Seric CONFIG: change UUCP rules to never add $U! or $k! on the front 14566920Seric of recipient envelope addresses. This should have been 14666920Seric handled by the $&h trick, but broke if people were 14766920Seric mixing domainized and UUCP addresses. They should 14866920Seric probably have converted all the way over to uucp-uudom 14966920Seric instead of uucp-{new,old}, but the failure mode was to 15066920Seric loop the mail, which was bad news. 15166920Seric Portability fixes: 15266920Seric Newer BSDI systems (several people). 15366920Seric Older BSDI systems from Christophe Wolfhugel. 15466920Seric Intergraph CLIX, from Paul Southworth of CICNet. 15566920Seric UnixWare, from Evan Champion. 15666920Seric NetBSD from Adam Glass. 15766920Seric Solaris from Quentin Campbell of the University of 15866920Seric Newcastle upon Tyne. 15966920Seric IRIX from Dean Cookson and Bill Driscoll of Mitre 16066920Seric Corporation. 16166920Seric NCR 3000 from Kevin Darcy of Chrysler Corporation. 16266920Seric SunOS (it has setsid() and setvbuf() calls) from 16366920Seric Jonathan Kamens of OpenVision Technologies. 16466920Seric HP-UX from Tor Lillqvist. 16566920Seric New Files: 16666920Seric src/Makefile.CLIX 16766920Seric src/Makefile.NCR3000 16866920Seric doc/changes/Makefile 16966920Seric doc/changes/changes.me 17066920Seric doc/changes/changes.ps 17166920Seric 17266432Seric8.6.8/8.6.6 94/03/21 17366432Seric SECURITY: it was possible to read any file as root using the 17466432Seric E (error message) option. Reported by Richard Jones; 17566432Seric fixed by Michael Corrigan and Christophe Wolfhugel. 17666432Seric 17766356Seric8.6.7/8.6.6 94/03/14 17866356Seric SECURITY: it was possible to get root access by using wierd 17966356Seric values to the -d flag. Thanks to Alain Durand of 18066356Seric INRIA for forwarding me the notice from the bugtraq 18166356Seric list. 18266356Seric 18366352Seric8.6.6/8.6.6 94/03/13 18466352Seric SECURITY: the ability to give files away on System V-based 18566352Seric systems proved dangerous -- don't run as the owner 18666352Seric of a :include: file on a system that allows giveaways. 18766352Seric Unfortunately, this also applies to determining a 18866352Seric valid shell. 18966352Seric IMPORTANT: Previous versions weren't expiring old connections 19066352Seric in the connection cache for a long time under some 19166352Seric circumstances. This could result in resource exhaustion, 19266352Seric both at your end and at the other end. This checks the 19366352Seric connections for timeouts much more frequently. From 19466352Seric Doug Anderson of NCSC. 19566352Seric Fix a glitch that snuck in that caused programs to be run as 19666352Seric the sender instead of the recipient if the mail was 19766352Seric from a local user to another local user. From 19866352Seric Motonori Nakamura of Kyoto University. 19966352Seric Fix "wildcard" on /etc/shell matching -- instead of looking 20066352Seric for "*", look for "/SENDMAIL/ANY/SHELL/". From 20166352Seric Bryan Costales of ICSI. 20266352Seric Change the method used to declare the "statfs" availability; 20366352Seric instead of HASSTATFS and/or HASUSTAT with a ton of 20466352Seric tweaking in conf.c, there is a single #define called 20566352Seric SFS_TYPE which takes on one of six values (SFS_NONE 20666352Seric for no statfs availability, SFS_USTAT for the ustat(2) 20766352Seric syscall, SFS_4ARGS for a four argument statfs(2) call, 20866352Seric and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument 20966352Seric statfs(2) call with the declarations in <sys/vfs.h>, 21066352Seric <sys/mount.h>, or <sys/statfs.h> respectively). 21166352Seric Fix glitch in NetInfo support that could return garbage if 21266352Seric there was no "/locations/sendmail" property. From 21366352Seric David Meyer of the University of Virginia. 21466352Seric Change HASFLOCK from defined/not-defined to a 0/1 definition 21566352Seric to allow Linux to turn it off even though it is a 21666352Seric BSD-like system. 21766352Seric Allow setting of "ident" timeout to zero to turn off the ident 21866352Seric protocol entirely. 21966352Seric Make 7-bit stripping local to a connection (instead of to a 22066352Seric mailer); this allows you to specify that SMTP is a 22166352Seric 7-bit channel, but revert to 8-bit should it advertise 22266352Seric that it supports 8BITMIME. You still have to specify 22366352Seric mailer flag 7 to get this stripping at all. 22466352Seric Improve makesendmail script so it handles more cases automatically. 22566352Seric Tighten up restrictions on taking ownership of :include: files 22666352Seric to avoid problems on systems that allow you to give away 22766352Seric files. 22866352Seric Fix a problem that made it impossible to rebuild the alias 22966352Seric file if it was on a read-only file system. From 23066352Seric Harry Edmon of the University of Washington. 23166352Seric Improve MX randomization function. From John Gardiner Myers 23266352Seric of CMU. 23366352Seric Fix a minor glitch causing a bogus message to be printed (used 23466352Seric %s instead of %d in a printf string for the line number) 23566352Seric when a bad queue file was read. From Harry Edmon. 23666352Seric Allow $s to remain NULL on locally generated mail. I'm not 23766352Seric sure this is necessary, but a lot of people have complained 23866352Seric about it, and there is a legitimate question as to whether 23966352Seric "localhost" is legal as an 822-style domain. 24066352Seric Fix a problem with very short line lengths (mailer L= flag) in 24166352Seric headers. This causes a leading space to be added onto 24266352Seric continuation lines (including in the body!), and also 24366352Seric tries to wrap headers containing addresses (From:, To:, 24466352Seric etc) intelligently at the shorter line lengths. Problem 24566352Seric Reported by Lars-Johan Liman of SUNET Operations Center. 24666352Seric Log the real user name when logging syserrs, since these can have 24766352Seric security implications. Suggested by several people. 24866352Seric Fix address logging of cached connections -- it used to always 24966352Seric log the numeric address as zero. This is a somewhat 25066352Seric bogus implementation in that it does an extra system 25166352Seric call, but it should be an inexpensive one. Fix from 25266352Seric Motonori Nakamura. 25366352Seric Tighten up handling of short syslog buffers even more -- there 25466352Seric were cases where the outgoing relay= name was too long 25566352Seric to share a line with delay= and mailer= logging. 25666352Seric Limit the overhead on split envelopes to one open file descriptor 25766352Seric per envelope -- previously the overhead was three 25866352Seric descriptors. This was in response to a problem reported 25966352Seric by P{r (Pell) Emanuelsson. 26066352Seric Fixes to better handle the case of unexpected connection closes; 26166352Seric this redirects the output to the transcript so the info 26266352Seric is not lost. From Eric Wassenaar. 26366352Seric Fix potential string overrun if you macro evaluate a string that 26466352Seric has a naked $ at the end. Problem noted by James Matheson 26566352Seric <jmrm@eng.cam.ac.uk>. 26666352Seric Make default error number on $#error messages 553 (``Requested 26766352Seric action not taken: mailbox name not allowed'') instead of 26866352Seric 501 (``Syntax error in parameters or arguments'') to 26966352Seric avoid bogus "protocol error" messages. 27066352Seric Strip off any existing trailing dot on names during $[ ... $] 27166352Seric lookup. This prevents it from ending up with two dots 27266352Seric on the end of dot terminated names. From Wesley Craig 27366352Seric of the University of Michigan and Bryan Costales of ICSI. 27466352Seric Clean up file class reading so that the debugging information is 27566352Seric more informative. It hadn't been using setclass, so you 27666352Seric didn't see the class items being added. 27766352Seric Avoid core dump if you are running a version of sendmail where 27866352Seric NIS is compiled in, and you specify an NIS map, but 27966352Seric NIS is not running. Fix from John Oleynick of 28066352Seric Rutgers. 28166352Seric Diagnose bizarre case where res_search returns a failure value, 28266352Seric but sets h_errno to a success value. 28366352Seric Make sure that "too many hops" messages are considered important 28466352Seric enough to send an error to the Postmaster (that is, the 28566352Seric address specified in the P option). This fix should 28666352Seric help problems that cause the df file to be left around 28766352Seric sometimes -- unfortunately, I can't seem to reproduce 28866352Seric the problem myself. 28966352Seric Avoid core dump (null pointer reference) on EXPN command; this 29066352Seric only occurred if your log level was set to 10 or higher 29166352Seric and the target account was an alias or had a .forward file. 29266352Seric Problem noted by Janne Himanka. 29366352Seric Avoid "denial of service" attacks by someone who is flooding your 29466352Seric SMTP port with bad commands by shutting the connection 29566352Seric after 25 bad commands are issued. From Kyle Jones of 29666352Seric UUNET. 29766352Seric Fix core dump on error messages with very long "to" buffers; 29866352Seric fmtmsg overflows the message buffer. Fixed by trimming 29966352Seric the to address to 203 characters. Problem reported by 30066352Seric John Oleynick. 30166352Seric Fix configuration for HASFLOCK -- there were some spots where 30266352Seric a #ifndef was incorrectly #ifdef. Pointed out by 30366352Seric George Baltz of the University of Maryland. 30466352Seric Fix a typo in savemail() that could cause the error message To: 30566352Seric lists to be incorrect in some places. From Motonori 30666352Seric Nakamura. 30766352Seric Fix a glitch that can cause duplicate error messages on split 30866352Seric envelopes where an address on one of the lists has a 30966352Seric name server failure. Fix from Voradesh Yenbut of the 31066352Seric University of Washington. 31166352Seric Fix possible bogus pointer reference on ESMTP parameters that 31266352Seric don't have an ``=value'' part. 31366352Seric CNAME loops caused an error message to be generated, but also 31466352Seric re-queued the message. Changed to just re-queue the 31566352Seric message (it's really hard to just bounce it because 31666352Seric of the wierd way the name server works in the presence 31766352Seric of CNAME loops). Problem noted by James M.R.Matheson 31866352Seric of Cambridge University. 31966352Seric Avoid giving ``warning: foo owned process doing -bs'' messages 32066352Seric if they use ``MAIL FROM:<foo>'' where foo is their true 32166352Seric user name. Suggested by Andreas Stolcke of ICSI. 32266352Seric Change the NAMED_BIND compile flag to be a 0/1 flag so you can 32366352Seric override it easily in the Makefile -- that is, you can 32466352Seric turn it off using -DNAMED_BIND=0. 32566352Seric If a gethostbyname(...) of an address with a trailing dot fails, 32666352Seric try it without the trailing dot. This is because if 32766352Seric you have a version of gethostbyname() that falls back 32866352Seric to NIS or the /etc/hosts file it will fail to find 32966352Seric perfectly reasonable names that just don't happen to 33066352Seric be dot terminated in the hosts file. You don't want to 33166352Seric strip the dot first though because we're trying to ensure 33266352Seric that country names that match one of your subdomains get 33366352Seric a chance. 33466352Seric PRALIASES: fix bogus output on non-null-terminated strings. 33566352Seric From Bill Gianopoulos of Raytheon. 33666352Seric CONFIG: Avoid rewriting anything that matches $w to be $j. 33766352Seric This was in code intended to only catch the self-literal 33866352Seric address (that is, [1.2.3.4], where 1.2.3.4 is your 33966352Seric IP address), but the code was broken. However, it will 34066352Seric still do this if $M is defined; this is necessary to 34166352Seric get client configurations to work (sigh). Note that this 34266352Seric means that $M overrides :mailname entries in the user 34366352Seric database! Problem noted by Paul Southworth. 34466352Seric CONFIG: Fix definition of Solaris help file location. From 34566352Seric Steve Cliffe <steve@gorgon.cs.uow.edu.au>. 34666352Seric CONFIG: Fix bug that broke news.group.USENET mappings. 34766352Seric CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX, 34866352Seric and USENET_MAILER_MAX to tweak the maximum message 34966352Seric size for various mailers. 35066352Seric CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0] 35166352Seric instead of assuming that it is "inews" for consistency 35266352Seric with other mailers. From Michael Corrigan of UC San Diego. 35366352Seric CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB, 35466352Seric qualify the address in the SMTP envelope as user@{relay|hub} 35566352Seric instead of user@$j. From Bill Wisner of The Well. 35666352Seric CONFIG: Fix route-addr syntax in nullrelay configuration set. 35766352Seric CONFIG: Don't turn off case mapping of user names in the local 35866352Seric mailer for IRIX. This was different than most every other 35966352Seric system. 36066352Seric CONFIG: Avoid infinite loops on certainly list:; syntaxes in 36166352Seric envelope. Noted by Thierry Besancon 36266352Seric <besancon@excalibur.ens.fr>. 36366352Seric CONFIG: Don't include -z by default on uux line -- most systems 36466352Seric don't want it set by default. Pointed out by Philippe 36566352Seric Michel of Thomson CSF. 36666352Seric CONFIG: Fix some bugs with mailertables -- for example, if your 36766352Seric host name was foo.bar.ray.com and you matched against 36866352Seric ".ray.com", the old implementation bound %1 to "bar" 36966352Seric instead of "foo.bar". Also, allow "." in the mailertable 37066352Seric to match anything -- essentially, take over SMART_HOST. 37166352Seric This also moves matching of explicit local host names 37266352Seric before the mailertable so they don't have to be special 37366352Seric cased in the mailertable data. Reported by Bill 37466352Seric Gianopoulos of Raytheon; the fix for the %1 binding 37566352Seric problem was contributed by Nicholas Comanos of the 37666352Seric University of Sydney. 37766352Seric CONFIG: Don't include "root" in class $=L (users to deliver 37866352Seric locally, even if a hub or relay exists) by default. 37966352Seric This is because of the known bug where definition of 38066352Seric both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore 38166352Seric both and deliver into the local mailbox. 38266352Seric CONFIG: Move up bitdomain and uudomain handling so that they 38366352Seric are done before .UUCP class matching; uudomain was 38466352Seric reported as ineffective before. This also frees up 38566352Seric diversion 8 for future use. Problem reported by Kimmo 38666352Seric Suominen. 38766352Seric CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4]) 38866352Seric into host names. As pointed out by Jonathan Kamens, 38966352Seric these are often used because either the forward or reverse 39066352Seric mapping is broken; this translation makes it broken again. 39166352Seric DOC: Clarify $@ and $: in the Install & Op Guide. From Kimmo 39266352Seric Suominen. 39366352Seric Portability fixes: 39466352Seric Unicos from David L. Kensiski of Sterling Sofware. 39566352Seric DomainOS from Don Lewis of Silicon Systems. 39666352Seric GNU m4 1.0.3 from Karst Koymans of Utrecht University. 39766352Seric Convex from Kimmo Suominen <kim@tac.nyc.ny.us>. 39866352Seric NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>. 39966352Seric BSD/386 from Tony Sanders of BSDI. 40066352Seric Apollo from Eric Wassenaar. 40166352Seric DGUX from Doug Anderson. 40266352Seric Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent. 40366352Seric NEW FILES: 40466352Seric src/Makefile.DomainOS 40566352Seric src/Makefile.PTX 40666352Seric src/Makefile.SunOS.5.1 40766352Seric src/Makefile.SunOS.5.2 40866352Seric src/Makefile.SunOS.5.x 40966352Seric src/mailq.1 41066352Seric cf/ostype/domainos.m4 41166352Seric doc/op/Makefile 41266352Seric doc/intro/Makefile 41366352Seric doc/usenix/Makefile 41466352Seric 41566348Seric8.6.5/8.6.5 94/01/13 41666348Seric Security fix: /.forward could be owned by anyone (the test 41766348Seric to allow root to own any file was backwards). From 41866348Seric Bob Campbell at U.C. Berkeley. 41966348Seric Security fix: group ids were not completely set when programs 42066348Seric were invoked. This caused programs to have group 42166348Seric permissions they should not have had (usually group 42266348Seric daemon instead of their own group). In particular, 42366348Seric Perl scripts would refuse to run. 42466348Seric Security: check to make sure files that are written are not 42566348Seric symbolic links (at least under some circumstances). 42666348Seric Although this does not respond to a specific known 42766348Seric attack, it's just a good idea. Suggested by 42866348Seric Christian Wettergren. 42966348Seric Security fix: if a user had an NFS mounted home directory on 43066348Seric a system with a restricted shell listed in their 43166348Seric /etc/passwd entry, they could still execute any 43266348Seric program by putting that in their .forward file. 43366348Seric This fix prevents that by insisting that their shell 43466348Seric appear in /etc/shells before allowing a .forward to 43566348Seric execute a program or write a file. You can disable 43666348Seric this by putting "*" in /etc/shells. It also won't 43766348Seric permit world-writable :include: files to reference 43866348Seric programs or files (there's no way to disable this). 43966348Seric These behaviours are only one level deep -- for 44066348Seric example, it is legal for a world-writable :include: 44166348Seric file to reference an alias that writes a file, on 44266348Seric the assumption that the alias file is well controlled. 44366348Seric Security fix: root was not treated suspiciously enough when 44466348Seric looking into subdirectories. This would potentially 44566348Seric allow a cracker to examine files that were publically 44666348Seric readable but in a non-publically searchable directory. 44766348Seric Fix a problem that causes an error on QUIT on a cached 44866348Seric connection to create problems on the current job. 44966348Seric These are typically unrelated, so errors occur in 45066348Seric the wrong place. 45166348Seric Reset CurrentLA in sendall() -- this makes sendmail queue 45266348Seric runs more responsive to load average, and fixes a 45366348Seric problem that ignored the load average in locally 45466348Seric generated mail. From Eric Wassenaar. 45566348Seric Fix possible core dump on aliases with null LHS. From 45666348Seric John Orthoefer of BB&N. 45766348Seric Revert to using flock() whenever possible -- there are just 45866348Seric too many bugs in fcntl() locking, particularly over 45966348Seric NFS, that cause sendmail to fail in perverse ways. 46066348Seric Fix a bug that causes the connection cache to get confused 46166348Seric when sending error messages. This resulted in 46266348Seric "unexpected close" messages. It should fix itself 46366348Seric on the following queue run. Problem noted by 46466996Seric Liudvikas Bukys of the University of Rochester. 46566348Seric Include $k in $=k as documented in the Install & Op Guide. 46666348Seric This seems odd, but it was documented.... From 46766348Seric Michael Corrigan of UCSD. 46866348Seric Fix problem that caused :include:s from alias files to be 46966348Seric forced to be owned by root instead of daemon 47066348Seric (actually DefUid). From Tim Irvin. 47166348Seric Diagnose unrecognized I option values -- from Mortin Forssen 47266348Seric of the Chalmers University of Technology. 47366348Seric Make "error" mailer work consistently when there is no error 47466348Seric code associated with it -- previously it returned OK 47566348Seric even though there was a real problem. Now it assumes 47666348Seric EX_UNAVAILABLE. 47766348Seric Fix bug that caused the last header line of messages that had 47866348Seric no body and which were terminated with EOF instead of 47966348Seric "." to be discarded. Problem noted by Liudvikas Bukys. 48066348Seric Fix core dump on SMTP mail to programs that failed -- it tried 48166348Seric to go to a "next MX host" when none existed, causing 48266348Seric a core dump. From der Mouse at McGill University. 48366348Seric Change IDENTPROTO from a defined/not defined to a 0/1 switch; 48466348Seric this makes it easier to turn it off (using 48566348Seric -DIDENTPROTO=0 in the Makefile). From der Mouse. 48666348Seric Fix YP_MASTER_NAME store to use the unupdated result of 48766348Seric gethostname() (instead of myhostname(), which tries 48866348Seric to fully qualify the name) to be consistent with 48966348Seric SunOS. If your hostname is unqualified, this fixes 49066348Seric transfers to slave servers. Bug noted by Keith 49166348Seric McMillan of Ameritech Services, Inc. 49266348Seric Fix Ultrix problem: gethostbyname() can return a very large 49366348Seric (> 500) h_length field, which causes the sockaddr 49466348Seric to be trashed. Use the size of the sockaddr instead. 49566348Seric Fix from Bob Manson of Ohio State. 49666348Seric Don't assume "-a." on host lookups if NAMED_BIND is not 49766348Seric defined -- this confuses gethostbyname on hosts 49866348Seric file lookups, which doesn't understand the trailing 49966348Seric dot convention. 50066348Seric Log SMTP server subprocesses that die with a signal instead 50166348Seric of from a clean exit. 50266348Seric If you don't have option "I" set, don't assume that a DNS 50366348Seric "host unknown" message is authoritative -- it 50466348Seric might still be found in /etc/hosts. 50566348Seric Fix a problem that would cause Deferred: messages to be sent 50666348Seric as the subject of an error message, even though the 50766348Seric actual cause of a message was more severe than that. 50866348Seric Problem noted by Chris Seabrook of OSSI. 50966348Seric Fix race condition in DBM alias file locking. From Kyle 51066348Seric Jones of UUNET. 51166348Seric Limit delivery syslog line length to avoid bugs in some 51266348Seric versions of syslog(3). This adds a new compile time 51366348Seric variable SYSLOG_BUFSIZE. From Jay Plett of Princeton 51466348Seric University, which is in turn derived from IDA. 51566348Seric Fix quotes inside of comments in addresses -- previously 51666348Seric it insisted that they be balanced, but the 822 spec 51766348Seric says that they should be ignored. 51866348Seric Dump open file state to syslog upon receiving SIGUSR1 (for 51966348Seric debugging). This also evaluates ruleset 89, if set 52066348Seric (with the null input), and logs the result. This 52166348Seric should be used sparingly, since the rewrite process 52266348Seric is not reentrant. 52366348Seric Change -qI, -qR, and -qS flags to be case-insensitive as 52466348Seric documented in the Bat Book. 52566348Seric If the mailer returned EX_IOERR or EX_OSERR, sendmail did not 52666348Seric return an error message and did not requeue the message. 52766348Seric Fix based on code from Roland Dirlewanger of 52866348Seric Reseau Regional Aquarel, Bordeaux, France. 52966348Seric Fix a problem that caused a seg fault if you got a 421 error 53066348Seric code during some parts of connection initialization. 53166348Seric I've only seen this when talking to buggy mailers on 53266348Seric the other end, but it shouldn't give a seg fault in 53366348Seric any case. From Amir Plivatsky. 53466348Seric Fix core dump caused by a ruleset call that returns null. 53566348Seric Fix from Bryan Costales of ICSI. 53666348Seric Full-Name: field was being ignored. Fix from Motonori Nakamura 53766348Seric of Kyoto University. 53866348Seric Fix a possible problem with very long input lines in setproctitle. 53966348Seric From P{r Emanuelsson. 54066348Seric Avoid putting "This is a warning message" out on return receipts. 54166348Seric Suggested by Douglas Anderson. 54266348Seric Detect loops caused by recursive ruleset calls. Suggested by 54366348Seric Bryan Costales. 54466348Seric Initialize non-alias maps during alias rebuilds -- they may be 54566348Seric needed for parsing. Problem noted by Douglas Anderson. 54666348Seric Log sender address even if no message was collected in SMTP 54766348Seric (e.g., if all RCPTs failed). Suggested by Motonori 54866348Seric Nakamura. 54966348Seric Don't reflect the owner-list contents into the envelope sender 55066348Seric address if the value contains ", :, /, or | (to avoid 55166348Seric illegal addresses appearing there). 55266348Seric Efficiency hack for toktype macro -- from Craig Partridge of 55366348Seric BB&N. 55466348Seric Clean up DNS error printing so that a host name is always 55566348Seric included. 55666348Seric Remember to set $i during queue runs. Reported by Stephen 55766348Seric Campbell of Dartmouth University. 55866348Seric If ${HOSTALIASES} is set, use it during canonification so that 55966348Seric headers are properly mapped. Reported by Anne Bennett 56066348Seric of Concordia University. 56166348Seric Avoid printing misleading error message if SMTP mailer (not 56266348Seric using [IPC]) should die on a core dump. 56366348Seric Avoid incorrect diagnosis of "file 1 closed" when it is caused 56466348Seric by the other end closing the connection. From 56566348Seric Dave Morrison of Oracle. 56666348Seric Improve several of the error messages printed by "mailq" 56766348Seric to include a host name or other useful information. 56866348Seric Add NetInfo preliminary support for NeXT systems. From Vince 56966348Seric DeMarco. 57066348Seric Fix a glitch that sometimes caused :include:s that pointed to 57166348Seric NFS filesystems that were down to give an "aliasing/ 57266348Seric forwarding loop broken" message instead of queueing 57366348Seric the message for retry. Noted by William C Fenner of 57466348Seric the NRL Connection Machine Facility. 57566348Seric Fix a problem that could cause a core dump if the input sequence 57666348Seric had (or somehow acquired) a \231 character. 57766348Seric Make sure that route-addrs always have <angle brackets> around 57866348Seric them in non-SMTP envelopes (SMTP envelopes already do 57966348Seric this properly). 58066348Seric Avoid wierd headers on unbalanced punctuation of the form: 58166348Seric ``Joe User <user)'' -- this caused reference to the 58266348Seric null macro. Fix from Rick McCarty of IO.COM. 58366348Seric Fix a problem that caused an alias "user: user@local.host" to 58466348Seric not have the QNOTREMOTE bit set; this caused configs 58566348Seric to act as if FEATURE(notsticky) was defined even when 58666348Seric it was not. The effect of the problem was to make it 58766348Seric very hard to to set up satellite sites that had a few 58866348Seric local accounts, with everything else forwarded to a 58966348Seric corporate hub. Reported by Detlef Drewanz of the 59066348Seric University of Rostock and Mark Frost of NCD. 59166348Seric Change queuing to not call rulesets 3, {1 or 2}, 4 on header 59266348Seric addresses. This is more efficient (fewer name server 59366348Seric calls) and fixes certain unusual configurations, such 59466348Seric as those that have ruleset 4 do something that is 59566348Seric non-idempotent unless a mailer-specific ruleset did 59666348Seric something else. Problem reported by Brian J. Coan 59766348Seric of the Institute for Global Communications. 59866348Seric Fix the "obsolete argument" routine in main to better understand 59966348Seric new arguments. For example, if you used ``sendmail 60066348Seric -C config -v -q'' it would choke on the -q because 60166348Seric the -C would stop looking for old-format arguments. 60266348Seric Fix the code that was intended to allow two users to forward their 60366348Seric mail to the same program and have them appear unique. 60466348Seric Portability fixes for: 60566348Seric SCO UNIX from Murray Kucherawy. 60666348Seric SCO Open Server 3.2v4 from Philippe Brand. 60766348Seric System V Release 4 from Rick Ellis and others. 60866348Seric OSF/1 from Steve Campbell. 60966348Seric DG/UX from Ben Mesander of the USGS and Bryan Curnutt 61066348Seric of Stoner Associates. 61166348Seric Motorola SysV88 from Kevin Johnson of Motorola. 61266348Seric Solaris 2.3 from Casper H.S. Dik of the University 61366348Seric of Amsterdam and John Caruso of University 61466348Seric of Maryland. 61566348Seric FreeBSD from Ollivier Robert. 61666348Seric NetBSD from Adam Glass. 61766348Seric TitanOS from Kate Hedstrom of Rutgers University. 61866348Seric Irix from Bryan Curnutt. 61966348Seric Dynix from Jim Davis of the University of Arizona. 62066348Seric RISC/os. 62166348Seric Linux from John Kennedy of California State University 62266348Seric at Chico. 62366348Seric Solaris 2.x from Tony Boner of the U.S. Air Force. 62466348Seric NEXTSTEP 3.x from Vince DeMarco. 62566348Seric HP-UX from various people. NOTA BENE: the location 62666348Seric of the config file has moved to /usr/lib 62766348Seric to match the HP-UX version of sendmail. 62866348Seric CONFIG: Don't do any recipient rewriting on relay mailer; 62966348Seric since this is intended only for internal use, the 63066348Seric usual RFC 821/822/1123 rules can be relaxed. The 63166348Seric main point of this is to avoid munging (ugh) UUCP 63266348Seric addresses when relaying internally. 63366348Seric CONFIG: fix typo in mailer/uucp.m4 that mutilates list:; 63466348Seric syntax addresses delivered via UUCP. Solution 63566348Seric provided by Peter Wemm. 63666348Seric CONFIG: fix thumb-fumble in default UUCP relaying in ruleset 63766348Seric zero; it caused double @ signs in addresses. From 63866348Seric Irving Reid of the University of Toronto. 63966348Seric CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1 64066348Seric from Markku Toijala of ICL Personal Systems Oy. 64166348Seric CONFIG: Add trailing "." on pseudo-domains for consistency; 64266348Seric this fixes a problem (noted by Al Whaley of Sunnyside) 64366348Seric that made it hard to recognize your own pseudodomain 64466348Seric names. 64566348Seric CONFIG: catch "@host" syntax errors (i.e., null local-parts) 64666348Seric rather than letting them get "local configuration 64766348Seric error"s. Problem noted by John Gardiner Myers. 64866348Seric CONFIG: add uucp-uudom mailer variant, based on code posted 64966348Seric by Spider Boardman <spider@Orb.Nashua.NH.US>; this 65066348Seric has uucp-dom semantics but old UUCP syntax. This 65166348Seric also permits "uucp-old" as an alias for "uucp" and 65266348Seric "uucp-new" as a synonym for "suucp" for consistency. 65366348Seric CONFIG: add POP mailer support (from Kimmo Suominen 65466348Seric <kim@grendel.lut.fi>). 65566348Seric CONFIG: drop CSNET_RELAY support -- CSNET is long gone. 65666348Seric CONFIG: fix bug caused with domain literal addresses (e.g., 65766348Seric ``[128.32.131.12]'') when FEATURE(allmasquerade) 65866348Seric was set; it would get an additional @masquerade.host 65966348Seric added to the address. Problem noted by Peter Wan 66066348Seric of Georgia Tech. 66166348Seric CONFIG: make sure that the local UUCP name is in $=w. From 66266348Seric Jim Murray of Stratus. 66366348Seric CONFIG: changes to UUCP rewriting to simulate IDA-style "V" 66466348Seric mailer flag. Briefly, if you are sending to host 66566348Seric "foo", then it rewrites "foo!...!baz" to "...!baz", 66666348Seric "foo!baz" remains "foo!baz", and anything else has 66766348Seric the local name prepended. 66866348Seric CONFIG: portability fixes for HP-UX. 66966348Seric DOC: several minor problems fixed in the Install & Op Guide. 67066348Seric MAKEMAP: fix core dump problem on lines that are too long or 67166348Seric which lack newline. From Mark Delany. 67266348Seric MAILSTATS: print sums of columns (total messages & kbytes 67366348Seric in and out of the system). From Tom Ferrin of UC 67466348Seric San Francisco Computer Graphics Lab. 67566348Seric SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES: 67666348Seric On HP-UX, /etc/sendmail.cf has been moved to 67766348Seric /usr/lib/sendmail.cf to match HP sendmail. 67866348Seric Permissions have been tightened up on world-writable 67966348Seric :include: files and accounts that have shells 68066348Seric that are not listed in /etc/shells. This may 68166348Seric cause some .forward files that have worked 68266348Seric before to start failing. 68366348Seric SIGUSR1 dumps some state to the log. 68466348Seric NEW FILES: 68566348Seric src/Makefile.DGUX 68666348Seric src/Makefile.Dynix 68766348Seric src/Makefile.FreeBSD 68866348Seric src/Makefile.Mach386 68966348Seric src/Makefile.NetBSD 69066348Seric src/Makefile.RISCos 69166348Seric src/Makefile.SCO 69266348Seric src/Makefile.SVR4 69366348Seric src/Makefile.Titan 69466348Seric cf/mailer/pop.m4 69566348Seric cf/ostype/bsdi1.0.m4 69666348Seric cf/ostype/dgux.m4 69766348Seric cf/ostype/dynix3.2.m4 69866348Seric cf/ostype/sco3.2.m4 69966348Seric makemap/Makefile.dist 70066348Seric praliases/Makefile.dist 70166348Seric 70266347Seric8.6.4/8.6.4 93/10/31 70366347Seric Repair core-dump problem (write to read-only memory segment) 70466347Seric if you fall back to the return-to-Postmaster case in 70566347Seric savemail. Problem reported by Richard Liu. 70666347Seric Immediately diagnose bogus sender addresses in SMTP. This 70766347Seric makes quite certain that crackers can't use this 70866347Seric class of attack. 70966347Seric Reliability Fix: check return value from fclose() and fsync() 71066347Seric in a few critical places. 71166347Seric Minor problem in initsys() that reversed a condition for 71266347Seric redirecting the output channel on queue runs. It's 71366347Seric not clear this code even does anything. From Eric 71466347Seric Wassenaar of the Dutch National Institute for Nuclear 71566347Seric and High-Energy Physics. 71666347Seric Fix some problems that caused queue runs to do "too much work", 71766347Seric such as double-reading the Errors-To: header. From 71866347Seric Eric Wassenaar. 71966347Seric Error messages on writing the temporary file (including the 72066347Seric data file) were getting suppressed in SMTP -- this 72166347Seric fix causes them to be properly reported. From Eric 72266347Seric Wassenaar. 72366347Seric Some changes to support AF_UNIX sockets -- this will only 72466347Seric really become relevant in the next release, but some 72566347Seric people need it for local patches. From Michael 72666347Seric Corrigan of UC San Diego. 72766347Seric Use dynamically allocated memory (instead of static buffers) 72866347Seric for macros defined in initsys() and settime(); since 72966347Seric these can have different values depending on which 73066347Seric envelope they are in. From Eric Wassenaar. 73166347Seric Improve logging to show ctladdr on to= logging; this tells you 73266347Seric what uid/gid processes ran as. 73366347Seric Fix a problem that caused error messages to be discarded if 73466347Seric the sender address was unparseable for some reason; 73566347Seric this was supposed to fall back to the "return to 73666347Seric postmaster" case. 73766347Seric Improve aliaswait backoff algorithm. 73866347Seric Portability patches for Linux (8.6.3 required another header 73966347Seric file) (from Karl London) and SCO UNIX. 74066347Seric CONFIG: patch prog mailer to not strip host name off of envelope 74166347Seric addresses (so that it matches local again). From 74266347Seric Christopher Davis. 74366347Seric CONFIG: change uucp-dom mailer so that "<>" translates to $n; 74466347Seric this prevents uux from seeing lines with null names like 74566347Seric ``From Sat Oct 30 14:55:31 1993''. From Motonori 74666347Seric Nakamura of Kyoto University. 74766347Seric CONFIG: handle <list:;> syntax correctly. This isn't legal, but 74866347Seric it shouldn't fail miserably. From Motonori Nakamura. 74966347Seric 75066346Seric8.6.3/8.6.3 93/10/24 75166346Seric IMPORTANT FIX: Fix several problems that caused open files to 75266346Seric be "lost" during queue runs; this overflowed the open 75366346Seric file table on large runs. An assumption that fdopen 75466346Seric always succeeds sometimes resulted in core dumps when 75566346Seric this happens; sometimes the message is delivered twice, 75666346Seric sometimes (probably) infinite times. This problem in 75766346Seric various form was reported by P{r (Pell) Emanuelsson and 75866346Seric Robert Campbell of U.C. Berkeley. 75966346Seric Special diagnosis of EMFILE error conditions -- it now prints 76066346Seric the known open file descriptors so you can figure out 76166346Seric what is consuming so much resources. 76266346Seric Fix a couple of problems caused by early address parsing 76366346Seric errors -- one caused it to return a "this is only a 76466346Seric warning" when it really wasn't, and the other started 76566346Seric parsing through a random pointer. The first was 76666346Seric noted by Eric Wassenaar. 76766346Seric Fix an infinite loop problem caused by null components in the 76866346Seric host signature. Problem noted by Jan Sorensen. 76966346Seric Be sure to reset the "current date" when sending an error 77066346Seric message -- PostMasterCopy messages were being sent 77166346Seric with an old Date: header. 77266346Seric Fix a problem that caused duplicated mail when sendmail was 77366346Seric (1) compiled without HASFLOCK, (2) you are sending to 77466346Seric an alias that has an owner-* alias, (3) you execute 77566346Seric sendmail with -t flag, (4) you run in -odb mode, and 77666346Seric (5) the sender specifies both the alias name and 77766346Seric another alias [i.e., the envelope is split], then 77866346Seric duplicate messages are sent. The problem description 77966346Seric and one-line fix are from Motonori Nakamura of Kyoto 78066346Seric University. 78166346Seric Avoid a problem that causes error messages to be discarded 78266346Seric in some cases -- this was the result of a "fix" to 78366346Seric avoid duplicate error messages, but two are better 78466346Seric than zero. Reported by Tim Rylance. 78566346Seric Fix a minor botch in checkfd012() -- fix from Dave Hill of 78666346Seric Computervision R&D Ltd. 78766346Seric Remove "X-Authentication-Warning: <user> set sender to <address> 78866346Seric using -f" entirely -- it is far too eager to include 78966346Seric this, and it is confusing folks. I'll try to make it 79066346Seric work "right" in 8.7. Problem noted by Yoshitaka 79166346Seric Tokugawa of dit Co., Ltd. 79266346Seric Fix a race condition with the errno value in tick() and 79366346Seric reapchild() -- this caused occasional misdiagnosis 79466346Seric of problems. Kyle Jones of UUNET helped this along. 79566346Seric Repair rule loop-detection code. From Michael Corrigan of 79666346Seric U.C. San Diego. 79766346Seric Fix a problem that caused sender domain addition (C mailer 79866346Seric flag to be ignored if you use -odq or use -odb with 79966346Seric a high load average. Problem reported by Jim Murray 80066346Seric of Stratus. 80166346Seric Fix ident protocol on multi-homed machines. It was not 80266346Seric always using the correct interface. Fix from J.R. 80366346Seric Oldroyd of Opal. 80466346Seric Previously, sendmail assumed that any SMTP greeting message 80566346Seric that wasn't 2xx was a temporary failure -- it should 80666346Seric only take 4xx as a temporary failure, and return a 80766346Seric solid error message on anything else -- for example, 80866346Seric to allow you to reject connections on a workstation 80966346Seric that is MXed to a mail server. 81066346Seric Portability enhancements for 386BSD/FreeBSD/NetBSD from 81166346Seric Ollivier Robert. 81266346Seric CONFIG: FEATURE(always_add_domain) didn't always add the domain; 81366346Seric in particular, on local mail it modified the header sender 81466346Seric but not the header recipient address(es). Reported by 81566346Seric Jeffrey Honig of Cornell University. Also, strip 81666346Seric any host from envelope recipient address(es), since 81766346Seric local mailers don't understand host names -- this is 81866346Seric to help mailertable entries. From Christopher Davis. 81966346Seric CONFIG: masquerading didn't apply to addresses that already 82066346Seric had a domain. This change replaces a local hostname 82166346Seric by the masquerade name in the SMTP mailer (previously 82266346Seric it only added the masquerade name if it didn't already 82366346Seric have a domain name). Several people complained about 82466346Seric this. 82566346Seric 82666345Seric8.6.2/8.6.2 93/10/15 82766345Seric Put a "successful delivery" message in the transcript for 82866345Seric addresses that get return-receipts. 82966345Seric Put a prominent "this is only a warning" message in warning 83066345Seric messages -- some people don't read carefully enough 83166345Seric and end up sending the message several times. 83266345Seric Include reason for temporary failure in the "warning" return 83366345Seric message. Currently, it just says "cannot send for 83466345Seric four hours". 83566345Seric Fix the "Original message received" time generated for 83666345Seric returntosender messages. It was previously listed as 83766345Seric the current time. Bug reported by Eric Hagberg of 83866345Seric Cornell University Medical College. 83966345Seric If there is an error when writing the body of a message, 84066345Seric don't send the trailing dot and wait for a response 84166345Seric in sender SMTP, as this could cause the connection to 84266345Seric hang up under some bizarre circumstances. From Eric 84366345Seric Wassenaar. 84466345Seric Fix some server SMTP synchronization problems caused when 84566345Seric connections fail during message collection. From 84666345Seric Eric Wassenaar. 84766345Seric Fix a problem that can cause srvrsmtp to reject mail if the 84866345Seric name server is down -- it accepts the RCPT but rejects 84966345Seric the DATA command. Problem reported by Jim Murray of 85066345Seric Stratus. 85166345Seric Fix a problem that can cause core dumps if the config file 85266345Seric incorrectly resolves to a null hostname. Reported by 85366345Seric Allan Johannesen of WPI. 85466345Seric Non-root use of -C flag, dangerous -f flags, and use of -oQ 85566345Seric by non-root users were not put into 85666345Seric X-Authentication-Warning:s as intended because the 85766345Seric config file hadn't set the PrivacyFlags yet. Fix 85866345Seric from Sven-Ove Westberg of the University of Lulea. 85966345Seric Under very odd circumstances, the alias file rebuild code 86066345Seric could get confused as to whether a database was 86166345Seric open or not. 86266345Seric Check "vendor code" on the end of V lines -- this is 86366345Seric intended to provide a hook for vendor-specific 86466345Seric configuration syntax. (This is a "new feature", 86566345Seric but I've made an exception to my rule in a belief 86666345Seric that this is a highly exceptional case.) 86766345Seric Portability fixes for DG/UX (from Douglas Anderson of NCSC), 86866345Seric SCO Unix (from Murray Kucherawy), A/UX, and OSF/1 86966345Seric (from Jon Forrest of UC Berkeley) 87066345Seric CONFIG: fix ``mailer:host'' form of UUCP relay naming. 87166345Seric 87266344Seric8.6.1/8.6 93/10/08 87366344Seric Portability fixes for A/UX and Encore UMAX V. 87466344Seric Fix error message handling -- if you had a name server down 87566344Seric causing an error during parsing, that message was never 87666344Seric propogated to the queue file. 87766344Seric 87866343Seric8.6/8.6 93/10/05 87966343Seric Configuration cleanup: make it easier to undo IDENTPROTO in 88066343Seric conf.h (other systems have the same bug). 88166343Seric If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume 88266343Seric getdtablesize() instead of sysconf(); a disturbingly 88366343Seric large number of systems defined _SC_OPEN_MAX in the 88466343Seric header files but don't have the syscall. 88566343Seric Another patch to really truly ignore MX records in getcanonname 88666343Seric if trymx == FALSE. 88766343Seric Fix problem that caused the "250 IAA25499 Message accepted for 88866343Seric delivery" message to be omitted if there was an error 88966343Seric in the header of the message (e.g., a bad Errors-To: 89066343Seric line). Pointed out by Michael Corrigan of UCSD. 89166343Seric Announce name of host we are chatting when we get errors; this 89266343Seric is an IDA-ism suggested by Christophe Wolfhugel. 89366343Seric Portability fixes for Alpha OSF/1 (from Anthony Baxter of the 89466343Seric Australian Artificial Intelligence Institute), SCO Unix 89566343Seric (from Murray Kucherawy of Hookup Communication Corp.), 89666343Seric NeXT (from Vince DeMarco and myself), Linux (from 89766343Seric Karl London <karl@borg.demon.co.uk>), BSDI (from 89866343Seric Christophe Wolfhugel, and SVR4 on Dell (from Kimmo 89966343Seric Suominen), AUX 3.0 on Macintosh, and ANSI C compilers. 90066343Seric Some changes to get around gcc optimizer bugs. From Takahiro 90166343Seric Kanbe. 90266343Seric Fix error recovery in queueup if another tf file of the same 90366343Seric name already exists. Problem stumbled over by Bill 90466343Seric Wisner of The Well. 90566343Seric Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes. 90666343Seric Problem noted by Keith McMillan of Ameritech Services. 90766343Seric Deal with group permissions properly when opening .forward and 90866343Seric :include: files. This relaxes the 8.1C restrictions 90966343Seric slightly more. This includes proper setting of groups 91066343Seric when reading :include: files, allowing you to read some 91166343Seric files that you should be able to read but have previously 91266343Seric been denied unless you owned them or they had "other" 91366343Seric read permission. 91466343Seric Make certain that $j is in $=w (after the .cf is read) so that 91566343Seric if the user is forced to override some silly system, 91666343Seric MX suppression will still work. 91766343Seric Fix a couple of efficiency problems where newstr was double- 91866343Seric calling expensive routines. In at least one case, it 91966343Seric wasn't guaranteed that they would always return the 92066343Seric same result. Problem noted by Christophe Wolfhugel. 92166343Seric Fix null pointer dereference in putoutmsg -- only on an error 92266343Seric condition from a non-SMTP mailer. From Motonori 92366343Seric Nakamura. 92466343Seric Macro expand "C" line class definitions before scanning so that 92566343Seric "CX $Z" works. 92666343Seric Fix problem that caused error message to be sent while still 92766343Seric trying to send the original message if the connection 92866343Seric is closed during a DATA command after getting an error 92966343Seric on an RCPT command (pretty obscure). Problem reported 93066343Seric by John Myers of CMU. 93166343Seric Fix reply to NOOP to be 250 instead of 200 -- this is a long 93266343Seric term bug. 93366343Seric Fix a nasty bug causing core dumps when returning the "warning: 93466343Seric cannot deliver for N hours -- will keep trying" message; 93566343Seric it only occurred if you had PostMasterCopy set and 93666343Seric only on some architectures. Although sendmail would 93766343Seric keep trying, it would send error messages on each 93866343Seric queue interval. This is an important fix. 93966343Seric Allow u and g options to take user and group names respectively. 94066343Seric Don't do a chdir into the queue directory in -bt mode to make 94166343Seric ruleset testing a bit easier. 94266343Seric Don't allow users to turn off logging (using -oL) on the command 94366343Seric line -- command line can only raise, not lower, logging 94466343Seric level. 94566343Seric Set $u to the original recipient on the SMTP transaction or on 94666343Seric the command line. This is only done if there is exactly 94766343Seric one recipient. Technically, this does not meet the 94866343Seric specs, because it does not guarantee a domain on the 94966343Seric address. 95066343Seric Fix a problem that dumped error messages on bad addresses if 95166343Seric you used the -t flag. Problem noted by Josh Smith of 95266343Seric Harvey Mudd College. 95366343Seric Given an address such as ``<foo> <bar>'', auto-quote the first 95466343Seric ``<foo>'' part, giving ``"<foo>" <bar>''. This is to 95566343Seric avoid the problem of people who use angle brackets in 95666343Seric their full name information. 95766343Seric Fix a null pointer dereference if you set option "l", have 95866343Seric an Errors-To: header in the message, and have Errors-To: 95966343Seric defined in the config file H lines. From J.R. Oldroyd. 96066343Seric Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get 96166343Seric wrong when compiling. Suggested by Rick McCarty of TI. 96266343Seric Fix a problem that could pass negative SIZE parameter if the 96366343Seric df file got lost; this would cause servers to always 96466343Seric give a temporary failure, making the problem even worse. 96566343Seric Problem noted by Allan Johannesen of WPI. 96666343Seric Add "ident" timeout (one of the "r" option selectors) for IDENT 96766343Seric protocol timeouts (30s default). Requested by Murray 96866343Seric Kucherawy of HookUp Communication Corp. to handle bogus 96966343Seric PC TCP/IP implementations. 97066343Seric Change $w default definition to be just the first component of 97166343Seric the domain name on config level 5. The $j macro defaults 97266343Seric to the FQDN; $m remains as before. This lets well-behaved 97366343Seric config files use any of the short, long, or subdomain 97466343Seric names. 97566343Seric Add makesendmail script in src to try to automate multi-architecture 97666343Seric builds. I know, this is sub-optimal, but it is still 97766343Seric helpful. 97866343Seric Fix very obscure race condition that can cause a queue run to 97966343Seric get a queue file for an already completed job. This 98066343Seric problem has existed for years. Problem noted by the 98166343Seric long suffering Allan Johannesen of WPI. 98266343Seric Fix a problem that caused the raw sender name to be passed to 98366343Seric udbsender instead of the canonified name -- this caused 98466343Seric it to sometimes miss records that it should have found. 98566343Seric Relax check of name on HELO packet so that a program using -bs 98666343Seric that claims to be itself works properly. 98766343Seric Restore rewriting of $: part of address through 2, R, 4 in 98866343Seric buildaddr -- this requires passing a lot of flags to get 98966343Seric it right. Unlike old versions, this ONLY rewrites 99066343Seric recipient addresses, not sender addresses. 99166343Seric Fix a bug that caused core dumps in config files that cannot 99266343Seric resolve /file/name style addresses. Fix from Jonathan 99366343Seric Kamens of OpenVision Technologies. 99466343Seric Fix problem with fcntl locking that can cause error returns to 99566343Seric be lost if the lock is lost; this required fully 99666343Seric queueing everything, dropping the envelope (so errors 99766343Seric would get returned), and then re-reading the queue from 99866343Seric scratch. 99966343Seric Fix a problem that caused aliases that redefine an otherwise 100066343Seric true address to still send to the original address 100166343Seric if and only if the alias failed in certain bizarre 100266343Seric ways (e.g, if they pointed at a list:; syntax address). 100366343Seric Problem pointed out by Jonathan Kamens. 100466343Seric Remove support for frozen configuration files. They caused 100566343Seric more trouble than it was worth. 100666343Seric Fix problem that can cause error messages to get ignored when 100766343Seric using both -odb and -t flags. Problem noted by Rob 100866343Seric McNicholas at U.C. Berkeley. 100966343Seric Include all "normal" variations on hostname in $=w. For example, 101066343Seric if the host name is vangogh.cs.berkeley.edu, $=w will 101166343Seric contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu. 101266343Seric Add "restrictqrun" privacy flag -- without this, anyone can run 101366343Seric the queue. 101466343Seric Reset SmtpPhase global on initial connection creation so that 101566343Seric messages don't come out with stale information. 101666343Seric Pass an "ext" argument to lockfile so that error/log messages 101766343Seric will properly reflect the true filename being locked. 101866343Seric Put all [...] address forms into $=w -- this eliminates the need 101966343Seric for MAXIPADDR in conf.h. Suggested by John Gardiner 102066343Seric Myers of CMU. 102166343Seric Fix a bug that can cause qf files to be left around even after 102266343Seric an SMTP RSET command. Problem and fix from Michael 102366343Seric Corrigan. 102466343Seric Don't send a PostMasterCopy to errors when the Precedence: is 102566343Seric negative. Error reports still go to the envelope 102666343Seric sender address. 102766343Seric Add LA_SHORT for load averages. 102866343Seric Lock sendmail.st file when posting statistics. 102966343Seric Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to 103066343Seric set the size of the TCP send and receive buffers; if you 103166343Seric run over a slow slip line you may need to set these down 103266343Seric (although it would be better to fix the SLIP implementation 103366343Seric so that it's not necessary to recompile every program 103466343Seric that does bulk data transfer). 103566343Seric Allow null defaults on $( ... $) lookups. Problem reported by 103666343Seric Amir Plivatsky. 103766343Seric Diagnose crufty S and V config lines. This resulted from an 103866343Seric observation that some people were using the SITE macro 103966343Seric without the SITECONFIG macro first, which was causing 104066343Seric bogus config files that were not caught. 104166343Seric Fix makemap -f flag to turn off case folding (it was turning it 104266343Seric on instead). THIS IS A USER VISIBLE CHANGE!!! 104366343Seric Fix a problem that caused multiple error messages to be sent if 104466343Seric you used "sendmail -t -oem -odb", your system uses fcntl 104566343Seric locking, and one of the recipient addresses is unknown. 104666343Seric Reset uid earlier in include() so that recursive .forwards or 104766343Seric :include:s don't use the wrong uid. 104866343Seric If file descriptor 0, 1, or 2 was closed when sendmail was 104966343Seric called, the code to recover the descriptor was broken. 105066343Seric This sometimes (only sometimes) caused problems with the 105166343Seric alias file. Fix from Motonori Nakamura. 105266343Seric Fix a problem that caused aliaswait to go into infinite recursion 105366343Seric if the @:@ metasymbol wasn't found in the alias file. 105466343Seric Improve error message on newaliases if database files cannot be 105566343Seric opened or if running with no database format defined. 105666343Seric Do a better estimation of the size of error messages when NoReturn 105766343Seric is set. Problem noted by P{r (Pell) Emanuelsson. 105866343Seric Fix a problem causing the "c" option (don't connect to expensive 105966343Seric mailers) to be ignored in SMTP. Problem noted and the 106066343Seric solution suggested by Robert Elz of Munnari University. 106166343Seric Improve connection caching algorithm by passing "[host]" to 106266343Seric hostsignature, which strips the square brackets and 106366343Seric returns the real name. This allows mailertable entries 106466343Seric to match regular entries. 106566343Seric Re-enable Return-Receipt-To: -- people seem to want this stupid 106666343Seric feature, even if it doesn't work right. 106766343Seric Catch and log attempts to try the "wiz" command in server SMTP. 106866343Seric This also ups the log level from LOG_NOTICE to LOG_CRIT. 106966343Seric Be more generous at assigning $z to the home directory -- do this 107066343Seric for programs that are specified through a .forward file. 107166343Seric Fix from Andrew Chang of Sun Microsystems. 107266343Seric Always save a fatal error message in preference to a non-fatal 107366343Seric error message so that the "subject" line of return 107466343Seric messages is the best possible. 107566343Seric CONFIG: reduce the number of quotes needed to quote configuration 107666343Seric parameters with commas: two quotes should work now, e.g., 107766343Seric define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local''). 107866343Seric CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom 107966343Seric connections (domain-ized UUCP). 108066343Seric CONFIG: fix bug in default maps (-o must be before database file 108166343Seric name). Pointed out by Christophe Wolfhugel. 108266343Seric CONFIG: add FEATURE(nodns) to state that we are not relying on 108366343Seric DNS. This would presumably be used in UUCP islands. 108466343Seric CONFIG: add OSTYPE(nextstep) and OSTYPE(linux). 108566343Seric CONFIG: log $u in Received: line. This is in technical violation 108666343Seric of the standards, since it doesn't guarantee a domain 108766343Seric on the address. 108866343Seric CONFIG: don't assume "m" in local mailer flags -- this means that 108966343Seric if you redefine LOCAL_MAILER_FLAGS you will have to include 109066343Seric the "m" flag should you want it. Apparently some Solaris 2.2 109166343Seric installations can't handle multiple local recipients. 109266343Seric Problem noted by Josh Smith. 109366343Seric CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults). 109466343Seric CONFIG: change default version level from 4 to 5. 109566343Seric CONFIG: add FEATURE(nullclient) to create a config file that 109666343Seric forwards all mail to a hub without ever looking at the 109766343Seric addresses in any detail. 109866343Seric CONFIG: properly strip mailer: information off of relays when 109966343Seric used to change .BITNET form into %-hack form. 110066343Seric CONFIG: fix a problem that caused infinite loops if presented 110166343Seric with an address such as "!foo". 110266343Seric CONFIG: check for self literal (e.g., [128.32.131.12]) even if 110366343Seric the reverse "PTR" mapping is broken. There's a better 110466343Seric way to do this, but the change is fairly major and I 110566343Seric want to hold it for another release. Problem noted by 110666343Seric Bret Marquis. 110766343Seric 110866342Seric8.5/8.5 93/07/23 110966342Seric Serious bug: if you used a command line recipient that was unknown 111066342Seric sendmail would not send a return message (it was treating 111166342Seric everything as though it had an SMTP-style client that 111266342Seric would do the return itself). Problem noted by Josh Smith. 111366342Seric Change "trymx" option in getcanonname() to ignore all MX data, 111466342Seric even during a T_ANY query. This actually didn't break 111566342Seric anything, because the only time you called getcanonname 111666342Seric with !trymx was if you already knew there were no MX 111766342Seric records, but it is somewhat cleaner. From Motonori 111866342Seric Nakamura. 111966342Seric Don't call getcanonname from getmxrr if you already know there 112066342Seric are no DNS records matching the name. 112166342Seric Fix a problem causing error messages to always include "The 112266342Seric original message was received ... from localhost". 112366342Seric The correct original host information is now included. 112466342Seric Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their 112566342Seric version of "test" doesn't have the -x flag). Change it 112666342Seric to use -f instead. From John Myers. 112766342Seric CONFIG: 8.4 mistakenly set the default SMTP-style mailer to 112866342Seric esmtp -- it should be smtp. 112966342Seric CONFIG: send all relayed mail using confRELAY_MAILER (defaults 113066342Seric to "relay" (a variant of "smtp") if MAILER(smtp) is used, 113166342Seric else "suucp" if MAILER(uucp) is used, else "unknown"); 113266342Seric this cleans up the configs somewhat. This fixes a serious 113366342Seric problem that caused route-addrs to get mistaken as relays, 113466342Seric pointed out by John Myers. WARNING: this also causes 113566342Seric the default on SMART_HOST to change from "suucp" to 113666342Seric "relay" if you have MAILER(smtp) specified. 113766342Seric 113866341Seric8.4/8.4 93/07/22 113966341Seric Add option `w'. If you receive a message that comes to you because 114066341Seric you are the best (lowest preference) target of an MX, and 114166341Seric you haven't explicitly recognized the source MX host in 114266341Seric your .cf file, this option will cause you to try the target 114366341Seric host directly (as if there were no MX for it at all). If 114466341Seric `w' is not set, this case is a configuration error. 114566341Seric Beware: if `w' is set, senders may get bogus errors like 114666341Seric "message timed out" or "host unknown" for problems that 114766341Seric are really configuration errors. This option is 114866341Seric disrecommended, provided only for compatibility with 114966341Seric UIUC sendmail. 115066341Seric Fix a problem that caused the incoming socket to be left open 115166341Seric when sendmail forks after the DATA command. This caused 115266341Seric calling systems to wait in FIN_WAIT_2 state until the 115366341Seric entire list was processed and the child closed -- a 115466341Seric potentially prodigious amount of time. Problem noted 115566341Seric by Neil Rickert. 115666341Seric Fix problem (created in 6.64) that caused mail sent to multiple 115766341Seric addresses, one of which was a bad address, to completely 115866341Seric suppress the sending of the message. This changes 115966341Seric handling of EF_FATALERRS somewhat, and adds an 116066341Seric EF_GLOBALERRS flag. This also fixes a potential problem 116166341Seric with duplicate error messages if there is a syntax error 116266341Seric in the header of a message that isn't noticed until late 116366341Seric in processing. Original problem pointed out by Josh Smith 116466341Seric of Harvey Mudd College. This release includes quite a bit 116566341Seric of dickering with error handling (see below). 116666341Seric Back out SMTP transaction if MAIL gets nested 501 error. This 116766341Seric will only hurt already-broken software and should help 116866341Seric humans. 116966341Seric Fix a problem that broke aliases when neither NDBM nor NEWDB were 117066341Seric compiled in. It would never read the alias file. 117166341Seric Repair unbalanced `)' and `>' (the "open" versions are already 117266341Seric repaired). 117366341Seric Logging of "done" in dropenvelope() was incorrect: it would 117466341Seric log this even when the queue file still existed. Change 117566341Seric this to only log "done" (at log level 11) when the 117666341Seric queue file is actually removed. From John Myers. 117766341Seric Log "lost connection" in server SMTP at log level 20 if there 117866341Seric is no pending transaction. Some senders just close the 117966341Seric connection rather than sending QUIT. 118066341Seric Fix a bug causing getmxrr to add a dot to the end of unqualified 118166341Seric domains that do not have MX records -- this would cause 118266341Seric the subsequent host name lookup to fail. The problem 118366341Seric only occurred if you had FEATURE(nocanonify) set. 118466341Seric Problem noted by Rick McCarty of Texas Instruments. 118566341Seric Fix invocation of setvbuf when passed a -X flag -- I had 118666341Seric unwittingly used an ANSI C extension, and this caused 118766341Seric core dumps on some machines. 118866341Seric Diagnose self-destructive alias loops on RCPT as well as EXPN. 118966341Seric Previously it just gave an empty send queue, which 119066341Seric then gave either "Need RCPT (recipient)" at the DATA 119166341Seric (confusing, since you had given an RCPT command which 119266341Seric returned 250) or just dropped the email, depending on 119366341Seric whether you were running VERBose mode. Now it usually 119466341Seric diagnoses this case as "aliasing/forwarding loop broken". 119566341Seric Unfortunately, it still doesn't adequately diagnose 119666341Seric some true error conditions. 119766341Seric Add internal concept of "warning messages" using 6xx codes. 119866341Seric These are not reported only to Postmaster. Unbalanced 119966341Seric parens, brackets, and quotes are printed as 653 codes. 120066341Seric They are always mapped to 5xx codes before use in SMTP. 120166341Seric Clean up error messages to tell both the actual address that 120266341Seric failed and the alias they arose from. This makes it 120366341Seric somewhat easier to diagnose problems. Difficulty noted 120466341Seric by Motonori Nakamura. 120566341Seric Fix a problem that inappropriately added a ctladdr to addresses 120666341Seric that shouldn't have had one during a queue run. This 120766341Seric caused error messages to be handled differently during 120866341Seric a queue run than a direct run. 120966341Seric Don't print the qf name and line number if you get errors during 121066341Seric the direct run of the queue from srvrsmtp -- this was 121166341Seric just extra stuff for users to crawl through. 121266341Seric Put command line flags on second line of pid file so you can 121366341Seric auto-restart the daemon with all appropriate arguments. 121466341Seric Use "kill `head -1 /etc/sendmail.pid`" to stop the 121566341Seric daemon, and "eval `tail -1 /etc/sendmail.pid`" to 121666341Seric restart it. 121766341Seric Remove the ``setuid(getuid())'' in main -- this caused the 121866341Seric IDENT daemon to screw up. This required that I change 121966341Seric HASSETEUID to HASSETREUID and complicate the mode 122066341Seric changing somewhat because both Ultrix and SunOS seem 122166341Seric to have a bug causing seteuid() to set the saved uid 122266341Seric as well as the effective. The program test/t_setreuid.c 122366341Seric will test to see if your implementation of setreuid(2) 122466341Seric is appropriately functional. 122566341Seric The FallBackMX (option V) handling failed to properly identify 122666341Seric fallback to yourself -- most of the code was there, 122766341Seric but it wasn't being enabled. Problem noted by Murray 122866341Seric Kucherawy of the University of Waterloo. 122966341Seric Change :include: open timeout from ETIMEDOUT to an internal 123066341Seric code EOPENTIMEOUT; this avoids adding "during SmtpPhase 123166341Seric with CurHostName" in error messages, which can be 123266341Seric confusing. Reported by Jonathan Kamens of OpenVision 123366341Seric Technologies. 123466341Seric Back out setpgrp (setpgid on POSIX systems) call to reset the 123566341Seric process group id. The original fix was to get around 123666341Seric some problems with recalcitrant MUAs, but it breaks 123766341Seric any call from a shell that creates a process group id 123866341Seric different from the process id. I could try to fix 123966341Seric this by diddling the tty owner (using tcsetpgrp or 124066341Seric equivalent) but this is too likely to break other 124166341Seric things. 124266341Seric Portability changes: 124366341Seric Support -M as equivalent to -oM on Ultrix -- apparently 124466341Seric DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs 124566341Seric instead of using standard flags. Oh joy. This 124666341Seric behaviour reported by Jon Giltner of University 124766341Seric of Colorado. 124866341Seric SGI IRIX -- this includes several changes that should 124966341Seric help other strict ANSI compilers. 125066341Seric SCO Unix -- from Murray Kucherawy of HookUp Communication 125166341Seric Corporation. 125266341Seric Solaris running the Sun C compiler (which despite the 125366341Seric documentation apparently doesn't define 125466341Seric __STDC__ by default). 125566341Seric ConvexOS from Eric Schnoebelen of Convex. 125666341Seric Sony NEWS workstations and Omron LUNA workstations from 125766341Seric Motonori Nakamura. 125866341Seric CONFIG: add confTRY_NULL_MX_LIST to set option `w'. 125966341Seric CONFIG: delete `C' and `e' from default SMTP mailers flags; 126066341Seric several people have made a good argument that this 126166341Seric creates more problems than it solves (although this 126266341Seric may prove painful in the short run). 126366341Seric CONFIG: generalize all the relays to accept a "mailer:host" 126466341Seric format. 126566341Seric CONFIG: move local processing in ruleset 0 into a new ruleset 126666341Seric 98 (8 on old sendmail). Domain literal [a.b.c.d] 126766341Seric addresses are also passed through this ruleset. 126866341Seric CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined, 126966341Seric internet-style addresses would "fall off the end" of 127066341Seric ruleset zero and be interpreted as local -- however, 127166341Seric the angle brackets confused the recursive call. 127266341Seric These are now diagnosed as "Unrecognized host name". 127366341Seric CONFIG: USENET rules weren't included in S0 because of a mistaken 127466341Seric ifdef(`_MAILER_USENET_') instead of 127566341Seric ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik 127666341Seric of SINTEF RUNIT, Oslo. 127766341Seric CONFIG: move up LOCAL_RULE_0 processing so that it happens very 127866341Seric early in ruleset 0; this allows .mc authors to bypass 127966341Seric things like the "short circuit" code for local addresses. 128066341Seric Prompted by a comment by Bill Wisner of The Well. 128166341Seric CONFIG: add confSMTP_MAILER to define the mailer used (smtp or 128266341Seric esmtp) to send SMTP mail. This allows you to default 128366341Seric to esmtp but use a mailertable or other override to 128466341Seric deal with broken servers. This logic was pointed out 128566341Seric to me by Bill Wisner. Ditto for confLOCAL_MAILER. 128666341Seric Changes to cf/sh/makeinfo.sh to make it portable to SVR4 128766341Seric environments. Ugly as sin. 128866341Seric 128966340Seric8.3/8.3 93/07/13 129066340Seric Fix setuid problems introduced in 8.2 that caused messages 129166340Seric like "Cannot create qfXXXXXX: Invalid argument" 129266340Seric or "Cannot reopen dfXXXXXX: Permission denied". This 129366340Seric involved a new compile flag "HASSETEUID" that takes 129466340Seric the place of the old _POSIX_SAVED_IDS -- it turns out 129566340Seric that the POSIX interface is broken enough to break 129666340Seric some systems badly. This includes some fixes for 129766340Seric HP-UX. Also fixes problems where the real uid is 129866340Seric not reset properly on startup (from Neil Rickert). 129966340Seric Fix a problem that caused timed out messages to not report the 130066340Seric addresses that timed out. Error messages are also more 130166340Seric "user friendly". 130266340Seric Drop required bandwidth on connections from 64 bytes/sec to 130366340Seric 16 bytes/sec. 130466340Seric Further Solaris portability changes -- doesn't require the BSD 130566340Seric compatibility library. This also adds a new 130666340Seric "HASGETDTABLESIZE" compile flag which can be used if 130766340Seric you want to use getdtablesize(2) instead of sysconf(2). 130866340Seric These are loosely based on changes from David Meyer at 130966340Seric University of Oregon. This now seems to work, at least 131066340Seric for quick test cases. 131166340Seric Fix a problem that can cause duplicate error messages to be 131266340Seric sent if you are in SMTP, you send to multiple addresses, 131366340Seric and at least one of those addresses is good and points 131466340Seric to an account that has a .forward file (whew!). 131566340Seric Fix a problem causing messages to be discarded if checkcompat() 131666340Seric returned EX_TEMPFAIL (because it didn't properly mark 131766340Seric the "to" address). Problem noted by John Myers. 131866340Seric Fix dfopen to return NULL if the open failed; I was depending 131966340Seric on fdopen(-1) returning NULL, which isn't the case. This 132066340Seric isn't serious, but does result in wierd error diagnoses. 132166340Seric From Michael Corrigan. 132266340Seric CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of 132366340Seric messages sent through UUCP-family mailers. Suggested 132466340Seric by Bill Wisner of The Well. 132566340Seric CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified, 132666340Seric include a "uucp-dom" mailer that uses domain-style 132766340Seric addressing. Suggested by Bill Wisner. 132866340Seric CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match 132966340Seric LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by 133066340Seric Christophe Wolfhugel. 133166340Seric CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel. 133266340Seric 133366339Seric8.2/8.2 93/07/11 133466339Seric Don't drop out on config file parse errors in -bt mode. 133566339Seric On older configuration files, assume option "l" (use Errors-To 133666339Seric header) for back compatibility. NOTE: this DOES NOT 133766339Seric imply an endorsement of the Errors-To: header in any way. 133866339Seric Accept -x flag on AIX-3 as well as OSF/1. Why, why, why??? 133966339Seric Don't log errors on EHLO -- it isn't a "real" error for an old 134066339Seric SMTP server to give an error on this command, and 134166339Seric logging it in the transcript can be confusing. Fix 134266339Seric from Bill Wisner. 134366339Seric IRIX compatibility changes provided by Dan Rich 134466339Seric <drich@sandman.lerc.nasa.gov>. 134566339Seric Solaris 2 compatibility changes. Provided by Bob Cunningham 134666339Seric <bob@kahala.soest.hawaii.edu>, John Oleynick 134766339Seric <juo@klinzhai.rutgers.edu> 134866339Seric Debugging: -d17 was overloaded (hostsignature and usersmtp.c); 134966339Seric move usersmtp (smtpinit and smtpmailfrom) to -d18 to 135066339Seric match the other flags in that file. 135166339Seric Flush transcript before fork in mailfile(). From Eric Wassenaar. 135266339Seric Save h_errno in mci struct and improve error message display. 135366339Seric Changes from Eric Wassenaar. 135466339Seric Open /dev/null for the transcript if the create of the xf file 135566339Seric failed; this avoids at least one possible null pointer 135666339Seric reference in very wierd cases. From Eric Wassenaar. 135766339Seric Clean up statistics gathering; it was over-reporting because of 135866339Seric forks. From Eric Wassenaar. 135966339Seric Fix problem that causes old Return-Path: line to override new 136066339Seric Return-Path: line (conf.c needs H_FORCE to avoid 136166339Seric re-using old value). From Motonori Nakamura. 136266339Seric Fix broken -m flag in K definition -- even if -m (match only) 136366339Seric was specified, it would still replace the key with the 136466339Seric value. Noted by Rick McCarty of Texas Instruments. 136566339Seric If the name server timed out over several days, no "timed out" 136666339Seric message would ever be sent back. The timeout code 136766339Seric has been moved from markfailure() to dropenvelope() 136866339Seric so that all such failures should be diagnosted. Pointed 136966339Seric out by Christophe Wolfhugel and others. 137066339Seric Relax safefile() constraints: directories in an include or 137166339Seric forward path must be readable by self if the controlling 137266339Seric user owns the entry, readable by all otherwise (e.g., 137366339Seric when reading your .forward file, you have to own and 137466339Seric have X permssion in it; everyone needs X permission in 137566339Seric the root and directories leading up to your home); 137666339Seric include files must be readable by anyone, but need not 137766339Seric be owned by you. 137866339Seric If _POSIX_SAVED_IDS is defined, setuid to the owner before 137966339Seric reading a .forward file; this gets around some problems 138066339Seric on NFS mounts if root permission is not exported and 138166339Seric the user's home directory isn't x'able. 138266339Seric Additional NeXT portability enhancements from Axel Zinser. 138366339Seric Additional HP-UX portability enhancements from Brian Bullen. 138466339Seric Add a timeout around SMTP message writes; this assumes you can 138566339Seric get throughput of at least 64 bytes/second. Note that 138666339Seric this does not impact the "datafinal" default, which 138766339Seric is separate; this is just intended to work around 138866339Seric network clogs that will occur before the final dot 138966339Seric is sent. From Eric Wassenaar. 139066339Seric Change map code to set the "include null" flag adaptively -- 139166339Seric it initially tries both, but if it finds anything 139266339Seric matching without a null it never tries again with a 139366339Seric null and vice versa. If -N is specified, it never 139466339Seric tries without the null and creates new maps with a 139566339Seric null byte. If -O is specified, it never tries with 139666339Seric the null (for efficiency). If -N and -O are specified, 139766339Seric you get -NO (get it?) lookup at all, so this would 139866339Seric be a bad idea. If you don't specify either -N or -O, 139966339Seric it adapts. 140066339Seric Fix recognition of "same from address" so that MH submissions 140166339Seric will insert the appropriate full name information; 140266339Seric this used to work and got broken somewhere along the 140366339Seric way. 140466339Seric Some changes to eliminate some unnecessary SYSERRs in the 140566339Seric log. For example, if you lost a connection, don't 140666339Seric bother reporting that fact on the connection you lost. 140766339Seric Add some "extended debugging" flags to try to track down 140866339Seric why we get occassional problems with file descriptor 140966339Seric one being closed when execing a mailer; it seems to 141066339Seric only happen when there has been another error in the 141166339Seric same transaction. This requires XDEBUG, defined 141266339Seric by default in conf.h. 141366339Seric Add "-X filename" command line flag, which logs both sides of 141466339Seric all SMTP transactions. This is intended ONLY for 141566339Seric debugging bad implementations of other mailers; start 141666339Seric it up, send a message from a mailer that is failing, 141766339Seric and then kill it off and examine the indicated log. 141866339Seric This output is not intended to be particularly human 141966339Seric readable. This also adds the HASSETVBUF compile 142066339Seric flag, defaulted on if your compiler defines __STDC__. 142166339Seric CONFIG: change SMART_HOST to override an SMTP mailer. If you 142266339Seric have a local net that should get direct connects, you 142366339Seric will need to use LOCAL_NET_CONFIG to catch these hosts. 142466339Seric See cf/README for an example. 142566339Seric CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle 142666339Seric sites that don't use the -d flag. 142766339Seric CONFIG: hide recipient addresses as well as sender addresses 142866339Seric behind $M if FEATURE(allmasquerade) is specified; this 142966339Seric has been requested by several people, but can break 143066339Seric local aliases. For example, if you mail to "localalias" 143166339Seric this will be rewritten as "localalias@masqueradehost"; 143266339Seric although initial delivery will work, replies will be 143366339Seric broken. Use it sparingly. 143466339Seric CONFIG: add FEATURE(domaintable). This maps unqualified domains 143566339Seric to qualified domains in headers. I believe this is 143666339Seric largely equivalent to the IDA feature of the same name. 143766339Seric CONFIG: use $U as UUCP name instead of $k. This permits you 143866339Seric to override the "system name" as your UUCP name -- 143966339Seric in particular, to use domain-ized UUCP names. From 144066339Seric Bill Wisner of The Well. 144166339Seric CONFIG: create new mailer "esmtp" that always tries EHLO 144266339Seric first. This is currently unused in the config files, 144366339Seric but could be used in a mailertable entry. 144466339Seric 144566338Seric8.1C/8.1B 93/06/27 144666338Seric Serious security bug fix: it was possible to read any file on 144766338Seric the system, regardless of ownership and permissions. 144866338Seric If a subroutine returns a fully qualified address, return it 144966338Seric immediately instead of feeding it back into rewriting. 145066338Seric This fixes a problem with mailertable lookups. 145166338Seric CONFIG: fix some M4 frotz (concat => CONCAT) 145266338Seric 145366338Seric8.1B/8.1A 93/06/12 145466338Seric Serious bug fix: pattern matching backup algorithm stepped by 145566338Seric two tokens in classes instead of one. Found by Claus 145666338Seric Assmann at University of Kiel, Germany. 145766338Seric 145866338Seric8.1A/8.1A 93/06/08 145966338Seric Another mailertable fix.... 146066338Seric 146166338Seric8.1/8.1 93/06/07 146266338Seric 4.4BSD freeze. No semantic changes. 146366338Seric 146466338Seric6.65/6.34 93/06/06 146566338Seric Fix some lintish problems. 146666338Seric Fix some cases where server SMTP behaved poorly when handed bogus 146766338Seric input, pointed out by Eric Wassenaar. 146866338Seric CONFIG: fix some more (sigh) mailertable bugs -- thanks to 146966338Seric Motonori Nakamura of Kyoto University (again). 147066338Seric 147166338Seric6.64/6.33 93/06/05 147266338Seric Don't send 050 (-v) information after the 250 response to a QUIT 147366338Seric command in srvrsmtp -- clients usually close the connection 147466338Seric at this point, and it causes bogus error messages. 147566338Seric Don't send messages that have errors on input (such as unbalanced 147666338Seric parentheses) during SMTP transactions, since a return 147766338Seric message has (probably) already been sent. 147866338Seric Give better diagnostics on timeouts during network reads, including 147966338Seric information similar to the SMTP phase. 148066338Seric Fix bug that caused SMTP messages to deliver synchronously; this 148166338Seric happened after the DATA 250, and hence caused reading the 148266338Seric next command to be delayed. 148366338Seric Ignore Errors-To: header unless 'l' (lower case el) header is 148466338Seric specified. The Errors-To: header violates RFC 1123. 148566338Seric Errors-To: was only needed to take the place of the 148666338Seric envelope sender in the days when most Unix mailers 148766338Seric didn't understand about the two kinds of senders. 148866338Seric Don't send warning messages in response to automatically generated 148966338Seric messages (that is, those From:<>). 149066338Seric CONFIG: fix some rather stupid typos in the mailertable code 149166338Seric pointed out by Motonori Nakamura of Kyoto University. 149266338Seric CONFIG: add confUSE_ERRORS_TO configuration option. 149366338Seric CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M 149466338Seric (masquerade name) instead of $j. 149566338Seric CONFIG: don't add dots to relay names (added in 6.29); it breaks 149666338Seric several things, and can be simulated by dot terminating 149766338Seric the names of relays. For example, use: 149866338Seric DBbit.net.relay. 149966338Seric (note the trailing dot). 150066338Seric 150166338Seric6.63/6.32 93/06/01 150266338Seric Fix prototypes to eliminate chars in argument lists -- some 150366338Seric compilers are pissy about this. 150466338Seric Log protocol ($r) and body type if set so we can determine if 150566338Seric the adaptive algorithms are working. 150666338Seric Pessimize on locking of database files (particularly for NEWDB 150766338Seric databases) during opens. There were problems with 150866338Seric processes opening the file while it was rebuilt; since 150966338Seric NEWDB caches heavily, the reader opened an empty file, 151066338Seric which is an error. If your system has the ability to 151166338Seric lock atomically on open, this works properly; otherwise, 151266338Seric there are race conditions. 151366338Seric Check mod time on .pag file instead of .dir in NDBM aliases 151466338Seric because the .dir file doesn't get updated for small 151566338Seric alias files. From John Gardiner Myers of CMU. 151666338Seric More Solaris portability -- it now compiles on Solaris, but 151766338Seric hangs up in gethostbyname(). 151866338Seric Move setting of RES_DEBUG flag before first myhostname() call 151966338Seric so we can see name server traffic on that call. 152066338Seric Fsync() queue files. 152166338Seric Fix a problem that causes -bi to try to rebuild maps other than 152266338Seric the alias file(s). 152366338Seric Fix a problem that caused udb to reject entries from any but 152466338Seric the first database listed. 152566338Seric Rearrange doc subdirectory for 4.4BSD release tape. 152666338Seric CONFIG: put $r into the Received line. This was an oversight. 152766338Seric CONFIG: fix typo (call to ruleset 99 should have been rulset 90). 152866338Seric CONFIG: move "auxiliary" subroutines to be in ruleset 90-99 152966338Seric range -- in the long run, single digit rulesets may 153066338Seric become reserved for builtin use by sendmail. 153166338Seric CONFIG: fix major problem that causes host aliases (that is, 153266338Seric anything in $=w != $j) to not be recognized. This has 153366338Seric been around since 6.30. 153466338Seric 153566338Seric6.62/6.31 93/05/28 153666338Seric BETA RELEASE 153766338Seric Fix recursive syserr (if there is an error printing a syserr 153866338Seric message). This makes the code much less eager to consider 153966338Seric a write error as serious. This also includes some 154066338Seric heuristics to be clever about closed connections. 154166338Seric Lock NEWDB files during gets. This requires version 1.5 or later 154266338Seric of the db library. If you have an older version, you 154366338Seric can use -DOLD_NEWDB. This will go away in a few weeks. 154466338Seric Fix problem causing aliases that use host maps to get overwritten. 154566338Seric Do appropriate byte swapping on port numbers in ident protocol 154666338Seric code. Fix from Allan Johannesen of WPI. 154766338Seric Defer opening of map files to the same time as alias files so that 154866338Seric the daemon will tend to pick up new versions more promptly. 154966338Seric Prototype a bunch more functions. 155066338Seric Some Solaris 2.1 changes (still doesn't link though). 155166338Seric Try to simplify Makefiles by including more subordinate #defines 155266338Seric in conf.h (based on OS type). 155366338Seric CONFIG: check for domains if FEATURE(mailertable) is defined. 155466338Seric For example, if the host name is "knecht.cs.berkeley.edu" 155566338Seric it will search the following mailertable keys: 155666338Seric knecht.cs.berkeley.edu 155766338Seric .cs.berkeley.edu 155866338Seric .berkeley.edu 155966338Seric .edu 156066338Seric This could be used to replace the special relays for bitnet 156166338Seric and similar nets. 156266338Seric 156366338Seric6.61/6.30 93/05/24 156466338Seric Fix problem that prevented appending dots on canonified host 156566338Seric names. This breaks tons of config files -- very 156666338Seric important fix. 156766338Seric Fix improper pointer dereference in response to HELO command. 156866338Seric Fix core dump if debugging set in map_rewrite. 156966338Seric CONFIG: add FEATURE(always_add_domain) to always attach the 157066338Seric local domain (only impacts local mail). 157166338Seric CONFIG: try to avoid turning names into $j -- although 157266338Seric technically a host can only have one "canonical name", 157366338Seric it seems to be common practice to have several. 157466338Seric 157566338Seric6.60/6.29 93/05/22 157666338Seric Major change: merge alias databases with maps. This expands and 157766338Seric changes the map class interface but fixes a bunch of bugs. 157866338Seric The important user-visible change is that the file name 157966338Seric in a K line now does not include the ".db" extension; this 158066338Seric is added automatically. Also, the -d (NIS domain) flag is 158166338Seric missing from the K config line; use @domain instead. 158266338Seric When compiling, the *_MAP names are gone -- just compile 158366338Seric in NDBM, NEWDB, and/or NIS support. 158466338Seric Announce mailer/host/user triple on -bv flag -- from Brian 158566338Seric Bullen of Stirling University. 158666338Seric Don't send more than one line in response to HELO -- it confuses 158766338Seric Pony Express, which then behaves very badly. However, 158866338Seric this change does send two line 220 greetings, with the 158966338Seric second line reading "ESMTP spoken here". The usersmtp 159066338Seric module recognizes this and goes into ESMTP mode regardless 159166338Seric of the setting of the "a" mailer flag. Thus, "a" means 159266338Seric "always try EHLO". 159366338Seric AIX portability changes (thanks to Christophe Wolfhugel of 159466338Seric Herve Schauer Consultants (Paris) for providing me with 159566338Seric an INSA account for this purpose). Lightly tested. Use 159666338Seric -D_AIX3. This probably breaks compatibility with some 159766338Seric older systems (e.g., 4.2bsd) but still works on SunOS 159866338Seric 4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3. 159966338Seric Fix a problem causing an error message loop if the output channel 160066338Seric is hosed. 160166338Seric Add the Makefiles that I use for various environments -- some are 160266338Seric Berkeley make versions and some are old make versions. 160366338Seric My makefile for the NeXT box has gotten lost, alas! 160466338Seric PRALIASES: support for printing NEWDB databases. From 160566338Seric Michael J. Corrigan of U.C. San Diego. 160666338Seric CONFIG: don't pass pseudo-domains to $[ ... $] (if you have 160766338Seric a wildcard MX it can have wierd results). From 160866338Seric Christophe Wolfhugel. 160966338Seric CONFIG: dot terminate relay hostnames in S0. From Christophe 161066338Seric Wolfhugel. 161166338Seric 161266338Seric6.59/6.28 93/05/13 161366338Seric Log version with SMTP daemon startup message. 161466338Seric Adjust setproctitle to work on NetBSD and BSD/386. 161566338Seric Fix null pointer reference in MX fallback code. 161666338Seric A bunch of minor fixes from Eric Wassenaar: 161766338Seric If deliver cannot execv the mailer, return EX_OSERR 161866338Seric instead of EX_TEMPFAIL (to give better 161966338Seric error messages). 162066338Seric Consistently malloc e_message. 162166338Seric Catch degenerate case of calling returntosender() 162266338Seric with an empty returnq. 162366338Seric MIME reformatting. 162466338Seric 162566338Seric6.58/6.28 93/05/13 162666338Seric Fix bug that can cause incorrect verbose display of user smtp 162766338Seric messages. 162866338Seric Disable SMTP VERB command if PRIV_NOEXPN is set (since this 162966338Seric could reveal the same information. 163066338Seric Allow failure when reading SMTP greeting message to go on to 163166338Seric next MX host. 163266338Seric Add "MIME-Version: 1.0" header if using MIME (this was NOT 163366338Seric included in RFC 1344, but Bill King of Allan-Bradley 163466338Seric Company forwarded me email from Nathaniel Borenstein 163566338Seric claiming that it was an inadvertent omission). 163666338Seric Don't use Content-Type: X-message-header. According to John 163766338Seric Myers of CMU, many MIME readers will completely ignore 163866338Seric the data if they don't recognize it. Instead, just 163966338Seric add a blank line to make it a legal (empty) message. 164066338Seric Fix problem causing dots to keep getting appended to cached 164166338Seric hostnames. This can cause buffer overrun conditions. 164266338Seric The problem was found by Erik Forsberg of Retix, 164366338Seric although I used a different bug fix than he provided. 164466338Seric Fix parsing of split header/envelope rewriting specs -- from 164566338Seric Eric Forsberg. 164666338Seric Fix from Eric Wassenaar to correct To: lists in error messages. 164766338Seric 164866338Seric6.57/6.28 93/05/11 164966338Seric Fix minor glitch causing extra ctladdrs to be output to queue 165066338Seric file. Just an annoyance. 165166338Seric Cache results of name server canonification lookups to avoid 165266338Seric backed up queue runs. 165366338Seric Major rewrite of alias.c: considerable cleanup, plus sample 165466338Seric (untested) support for NIS aliases. The "A" option 165566338Seric can now be a comma separated list (or be repeated) -- 165666338Seric that is, you can have multiple alias databases. Each 165766338Seric database can have the syntax ``class:file''; if no class 165866338Seric is specified, the "implicit" class is assumed. Implicit 165966338Seric searches through a list of compiled in types -- hash, 166066338Seric dbm, nis, and stab. Alias files are searched in the 166166338Seric order they are listed. For example: 166266338Seric OAhash:/etc/aliases.local,/etc/aliases 166366338Seric OAnis:mail.aliases@my.nis.domain 166466338Seric first searches the hash database /etc/aliases.local, 166566338Seric then the regular /etc/aliases database, then the NIS 166666338Seric map "mail.aliases" in the NIS domain "my.nis.domain". 166766338Seric If in Verbose mode (probably from VERB command) run SMTP job 166866338Seric in foreground and don't do RCPT optimizations. 166966338Seric Add udb :mailsender as equivalent to owner- for regular aliases. 167066338Seric Delete option 8; add option 7 that means the opposite. That is, 167166338Seric default to 8-bit mode; a special option is needed to 167266338Seric force sendmail into 7 bit mode. 167366338Seric Send error messages in encapsulated MIME format. 167466338Seric New compile flag "NIS" that turns on NIS alias and NIS map 167566338Seric support. 167666338Seric Add "j" option to send error messages in MIME (RFC 1341) 167766338Seric encapsulated message format per RFC 1344. The 167866338Seric syntax is pretty ugly if you don't have MIME-aware 167966338Seric user agents. 168066338Seric Clean up message handling (for display in mailq output). 168166338Seric New setproctitle implementation for 4.4bsd. 168266338Seric Create files (such as ~/dead.letter) using mode FileMode (the 168366338Seric F option value) instead of 0666. 168466338Seric Fix bug causing output of EXPN command to not be fully qualified. 168566338Seric This may cause some problems with UUCP addresses that 168666338Seric will require some config file assistance -- specifically, 168766338Seric the $: part has to include the host name for this output 168866338Seric to make sense. 168966338Seric Fix a problem that sometimes diagnosed errors and still sent the 169066338Seric message if the header syntax was bad. 169166338Seric Fix a bug that caused an error message to be emailed when sendmail 169266338Seric was operating in -bv mode. 169366338Seric Add "ListenQueueSize" keyword to daemon options option (OO) to 169466338Seric set the queue size parameter passed to listen(). You 169566338Seric will normally have to tweak your kernel to up this. 169666338Seric Strip spaces off of beginning of message-id before logging (in 169766338Seric case it was folded across lines). 169866338Seric Tweak compile flags in daemon.c -- there were some cases where 169966338Seric it wouldn't work without NETINET. 170066338Seric Change *file* mailer to output all the usual default headers 170166338Seric (From, Date, Message-Id). It gets used when sending 170266338Seric back error messages. 170366338Seric CONFIG: explicitly catch and diagnose list:; syntax in ruleset 170466338Seric zero -- this is not a valid recipient syntax according 170566338Seric to RFC 821. 170666338Seric CONFIG: add confMIME_FORMAT_ERRORS to send error messages in 170766338Seric MIME format. Defaults to on. 170866338Seric CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment 170966338Seric the flags for those mailers. 171066338Seric 171166338Seric6.56/6.27 93/05/01 171266338Seric Fix problem that causes the fallback mail to postmaster 171366338Seric (case ESM_POSTMASTER in savemail()) to not look at 171466338Seric aliases (ugh). 171566338Seric Some more HPUX tweaking (compile flag hpux => __hpux so it 171666338Seric still works in ANSI mode). 171766338Seric Don't try to flock non-regular files when mailing to a file. 171866338Seric In particular, this was a problem if you tried to 171966338Seric send to /dev/null. 172066338Seric Fix a wierd bug that can cause senders to be queued as 172166338Seric recipients if the name server is down when the mail 172266338Seric is initially sent. This hack just ignores sender 172366338Seric deletion (essentially, it sets the MeToo flag) if there 172466338Seric is a TEMPFAIL during processing of the sender address. 172566338Seric Obscure. 172666338Seric Fix a dangling else problem -- from Brian Bullen from University 172766338Seric of Stirling, UK. 172866338Seric Add the "b" mailer flag to force a blank line on the end of 172966338Seric messages. Some brilliant versions of /bin/mail insist 173066338Seric on this but do not add it themselves. 173166338Seric Add the "g" mailer flag to prevent user SMTP from sending 173266338Seric "MAIL From:<>". This is only intended to be a 173366338Seric transitional gesture, and should not be used if at 173466338Seric all possible. It appears that Berkeley and IDA 173566338Seric config files have always handled this properly; the 173666338Seric UK config kit apparently does not. 173766338Seric Don't lowercase and then capitalize header field names -- leave 173866338Seric them with original capitalization. Fixes from Bill 173966338Seric King of Allen-Bradley Company. 174066338Seric Further cleanup and improved reporting of error messages, 174166338Seric particularly conditions that cause messages to be 174266338Seric requeued for future delivery. 174366338Seric Tweak syslog priorities in some cases. 174466338Seric CONFIG: clean up route-addr on UUCP addresses. 174566338Seric 174666338Seric6.55/6.25 93/04/27 174766338Seric HPUX 8.07 compatibility changes in getla() -- I had to make 174866338Seric these changes to get it to work at Berkeley, although 174966338Seric others seem to have been working before (???). 175066338Seric Various patches to XLA code. 175166338Seric Fix problem that causes setuid bit on files to be ignored from 175266338Seric SMTP or in queue runs. Problem noted by Jason Ornstein 175366338Seric of Under The Wire, Inc. 175466338Seric Fix problem that can cause CNAMEs to be ignored. 175566338Seric Generalize getmxrr to match local host in $=w instead of a 175666338Seric single name passed in. 175766338Seric Some cleanup from Eric Wassenaar: 175866338Seric Use FileMailer instead of ProgMailer in two places. 175966338Seric Eliminate duplicate 8th-bit stripping in commaize. 176066338Seric Fix a problem with mis-parsing of backslash escapes 176166338Seric under some circumstances. 176266338Seric NIS map fix (was always including trailing null character) 176366338Seric from Mike Glendinning of Ingres UK. 176466338Seric Add "a" mailer flag to try using ESMTP. It tries the EHLO 176566338Seric command and if that fails falls back to regular SMTP. 176666338Seric Also parses EHLO option keywords. If host supports 176766338Seric SIZE extension, this is added to the MAIL FROM: 176866338Seric command. 176966338Seric Extend "b" option to include a second value which is the 177066338Seric maximum message size this server is willing to accept. 177166338Seric For example, a value of "10/1000000" says that there 177266338Seric must be ten blocks free, and sendmail will reject 177366338Seric any message larger than one megabyte. 177466338Seric Some portability hooks for NeXT (this could be applicable 177566338Seric to Mach in general). You have to create an empty 177666338Seric file called "unistd.h" to get it to compile. 177766338Seric Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to 177866338Seric be more generous. 177966338Seric Add X400-Received: to the list of headers tagged with H_TRACE 178066338Seric in conf.c. From Bill King, Allen-Bradley Co. 178166338Seric 178266338Seric6.54/6.25 93/04/19 178366338Seric Fix problem that caused redefinition of SMTP and QUEUE compile 178466338Seric flags. Pointed out by Jon Forrest of the Sequoia 2000 178566338Seric project at Berkeley. 178666338Seric Properly handle \! hack -- it was treating host\!user as one 178766338Seric token (host!user) instead of three (host, !, user). 178866338Seric Fix from Eric Wassenaar of NIKHEF-H. 178966338Seric Fix compilation problem in getauthinfo() if IDENTPROTO is off. 179066338Seric Turn off DEFNAMES and DNSRCH when getting the hostsignature 179166338Seric (i.e., MX records) in level 1 configuration files; this 179266338Seric matches the old behaviour. From Motonori Nakamura of 179366338Seric Kyoto University. 179466338Seric Improve error message printing -- if sent through an alias, 179566338Seric error messages include the name of the alias in the 179666338Seric message. Unfortunately, in order to make this work 179766338Seric properly in queue runs, this changes the format of the 179866338Seric C line in the qf file. The relatively uselessness of 179966338Seric the previous information was pointed out to me by 180066338Seric Allan E Johannesen of WPI. 180166338Seric Add XLA compile flag to add hooks to Christophe Wolfhugel's 180266338Seric extended load average code. This is still in very early 180366338Seric form. For information regarding the guts of the xla 180466338Seric code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr. 180566338Seric Additional hooks for detecting tempfails in rewriting rules 180666338Seric (that is, in map lookups). 180766338Seric 180866338Seric6.53/6.25 93/04/15 180966338Seric Properly diagnose ruleset zero returning null (instead of a mailer 181066338Seric triple). From Motonori Nakamura of Kyoto University. 181166338Seric More generalization of socket code for other protocols. 181266338Seric Shorten timeouts on reverse name lookups -- since they are done 181366338Seric during connection establishment, long timeouts here can 181466338Seric cause higher level timeouts. This mainly serves to accept 181566338Seric mail from hosts that do not have proper reverse (PTR) DNS 181666338Seric records set up. 181766338Seric Reset e_statmsg before each mailer invocation to avoid bogus 181866338Seric messages in the log. 181966338Seric Redefine $r, $s, and $_ in error envelopes so you don't get 182066338Seric incorrect cruft in the error message. Problem noted by 182166338Seric Motonori Nakamura of Kyoto University. 182266338Seric Fix a problem that can cause failure to return errors to Postmaster 182366338Seric in certain cases. From Motonori Nakamura. 182466338Seric Fix a problem that can cause some systems to give duplicate error 182566338Seric messages when a bad syntax address such as "<a" is presented 182666338Seric to an SMTP server. It doesn't seem to occur on all 182766338Seric machines. From Motonori Nakamura. 182866338Seric Default IDENTPROTO off for Ultrix and HPUX, which apparently have 182966338Seric the interesting "feature" that when they receive a "Host 183066338Seric unreachable" message they closes all open connections to 183166338Seric that host. However, some firewall gateways send this message 183266338Seric if you try to connect to an unauthorized port, such as the 183366338Seric IDENT port (113). Thus, no email can be received from such 183466338Seric hosts. There is some evidence that versions of Ultrix before 183566338Seric 4.3 do not have this problem. Thanks to Tom Ivar Helbekkmo 183666338Seric for pointing out this behaviour to me and to Michael Corrigan 183766338Seric of U.C. San Diego for informing me about the HPUX problem. 183866338Seric Allow IPC mailers to return a colon-separated list of hosts in the 183966338Seric $@ clause; these are searched in order as though they were 184066338Seric MX records. 184166338Seric When sending an error report, print the list of addresses tagged 184266338Seric as bad. Requested by Allan E Johannesen of WPI. 184366338Seric Change map function calls to return a status code. This gets 184466338Seric passed back as the result of rewrite. Parseaddr marks 184566338Seric the address as a QUEUEUP address if the return code is 184666338Seric EX_TEMPFAIL. All this to queue properly if the name 184766338Seric server is down. This code is not well tested. This code 184866338Seric changes the interface to map lookup functions (a fifth 184966338Seric parameter, int *statp, is added). Feature requested by 185066338Seric Dan Oscarsson. 185166338Seric Don't delete quotes (in the dequote map) if there are spaces in 185266338Seric the string, since this would cause them to be replaced by 185366338Seric the SpaceSub character. 185466338Seric Accept BODY=8BITMIME on SMTP MAIL command. This isn't advertised 185566338Seric because the 8BIT to 7BIT translation doesn't exist yet. 185666338Seric This does add a "bodytype" field to both envelope and 185766338Seric queue file and a -B command line flag to pass the type in 185866338Seric during direct invocations. 185966338Seric Discard return error messages only on responses to responses to 186066338Seric responses, not on responses to responses. That is, the 186166338Seric algorithm is to try return to sender, then return to 186266338Seric postmaster, then discard. Previously it discarded 186366338Seric immediately if the return to sender pass failed. 186466338Seric CONFIG: back out change to hide unqualified hostnames behind %-hack. 186566338Seric This screws up local aliases and .forward files. 186666338Seric CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $]; 186766338Seric some sites only handle completely canonified names. 186866338Seric Requested by John Gardiner Myers of CMU. 186966338Seric CONFIG: some UUCP code was still included even if FEATURE(nouucp) 187066338Seric was specified. 187166338Seric 187266338Seric6.52/6.24 93/04/10 187366338Seric Clean up some minor glitches on error return messages pointed out 187466338Seric by Motonori Nakamura of Kyoto University. 187566338Seric Fix reply() to not reset SmtpReplyBuffer on fatal errors; this 187666338Seric was supposed to reset SmtpMsg Buffer. This makes the 187766338Seric client side code virtually useless. Reported by Allan 187866338Seric E Johannesen of WPI and Phil Brandenberger of Swarthmore. 187966338Seric Better debug messages if fuzzy is disabled, suggested by Allan 188066338Seric E Johannesen of WPI. 188166338Seric Offset SmtpReplyBuffer by four in usersmtp when checking for 188266338Seric loopback. From Eric Wassenaar. 188366338Seric Don't set $s until after runinchild in srvrsmtp -- otherwise 188466338Seric it gets cleared. From Eric Wassenaar. 188566338Seric Implement IDA-style $&x for deferred macro expansion. 188666338Seric More POSIX compatibility. 188766338Seric CONFIG: Hide unqualified hostnames behind %-hack using $s as the 188866338Seric actual sender. This is only done if $r is non-null, that 188966338Seric is, if this is not locally submitted mail. 189066338Seric CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host 189166338Seric names to internet domains. A program contributed by 189266338Seric John Gardiner Myers of CMU to create the maps is included 189366338Seric in the contrib directory (in the "misc" tar file). 189466338Seric CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP 189566338Seric hosts. There is currently no tool to create this map. 189666338Seric 189766338Seric6.51/6.23 93/04/04 189866338Seric Add D= mailer flag to specify a path of possible working directories 189966338Seric in which to execute the mailer. This is intended for the 190066338Seric prog mailer; some shells can get upset if they don't have 190166338Seric access to the current directory. 190266338Seric Add RFC 1413 (IDENT) protocol support. This is only very loosely 190366338Seric tested. This adds a $_ macro to be the authenticated 190466338Seric info (in ``user@domain [address]'' form) and debug flag 190566338Seric 9 to trace the protocol. 190666338Seric Check for loopbacks in usersmtp instead of srvrsmtp -- there is no 190766338Seric reason for a local agent to not be talking to the localhost 190866338Seric (although the inverse is not true). 190966338Seric Add a few hooks for automated map rebuilding. This is certainly 191066338Seric not done yet. 191166338Seric CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is, 191266338Seric user's home directory then the root. 191366338Seric CONFIG: Log RFC 1413 identification in Received: line. 191466338Seric 191566338Seric6.50/6.22 93/04/01 191666338Seric Fixes to requeueing code to make it compute priority, nrcpts, 191766338Seric and the like properly. 191866338Seric 191966338Seric6.49/6.22 93/04/01 192066338Seric Diagnose incorrect privacy flags. Suggested by Bryan Costales 192166338Seric of ICSI. 192266338Seric Some ANSI C fixes. 192366338Seric Arrange to quote backslashes as well as other special characters 192466338Seric in the phrase part of a route-addr. 192566338Seric Some fixes to FallBackMX code suggested by Motonori Nakamura of 192666338Seric Kyoto University. 192766338Seric More vigorous zeroing of CurHostAddr to avoid logging of bogus 192866338Seric host addresses when you are actually just printing 192966338Seric information from the MCI structure; problem noted by 193066338Seric Michael Corrigan of U.C. San Diego. 193166338Seric Don't ignore rest of queue if any job is not runnable. This can 193266338Seric also cause an incorrect job to be lost. Fix from 193366338Seric Eric Wassenaar. 193466338Seric Always respond "quickly" to RCPT command; do alias expansion and 193566338Seric the like later. This also means that mail for lists that 193666338Seric have errors will be acccepted, and an error sent back 193766338Seric later. This is done by instantiating the queue file 193866338Seric and then immediately running and requeueing it. 193966338Seric 194066338Seric6.48/6.22 93/03/30 194166338Seric Fix incorrect diagnosis of infinite loop in ruleset. Problem noted 194266338Seric by several people. 194366338Seric Improve information printed when infinite loops are discovered. 194466338Seric Zero CurHostAddr to fix erroneous internet addresses in log when no 194566338Seric addresses can be bound. Pointed out by Motonori Nakamura 194666338Seric of Kyoto University. 194766338Seric "Probe" SMTP connections using RSET instead of NOOP "just in case". 194866338Seric Suggested by John Gardiner Myers of CMU. 194966338Seric Don't warn about -f if you are setting sender to yourself. 195066338Seric 195166338Seric6.47/6.22 93/03/29 195266338Seric Fix incompatible call to endmailer in smtpquit which causes core 195366338Seric dumps. Noted by Allan E Johannesen of WPI. 195466338Seric HPUX portability changes from Michael J. Corrigan of UC San Diego. 195566338Seric Require MAIL before RCPT command in srvrsmtp.c. This had been 195666338Seric intentional from the 821 draft days when the order wasn't 195766338Seric clear, but is silly now. 195866338Seric Fix bug in nis_magic routine that was initializing parameters 195966338Seric incorrectly. Fix from Takahiro Kanbe of Fuji Xerox 196066338Seric Information Systems Co., Ltd. 196166338Seric Change default for PrivacyFlags in conf.c to 0 -- since it always 196266338Seric "or"s in new values, there was no way to turn off the 196366338Seric AuthWarning stuff. 196466338Seric Add O option to set SMTP daemon options. 196566338Seric Add V option to set fallback MX host. This always sorts at lower 196666338Seric priority than anything it gets from the name server. It 196766338Seric should only be used for environments with very bad network 196866338Seric connectivity. Requested by several people. 196966338Seric Log sending info. It's not clear this is a good idea. 197066338Seric CONFIG: fix typo in mailertable code. Noted by Phil Brandenberger 197166338Seric of Swarthmore. 197266338Seric CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options 197366338Seric O and V, respectively. 197466338Seric 197566338Seric6.46/6.21 93/03/26 197666338Seric Fix botch in server SMTP that broke transactions that did not 197766338Seric use HELO first (like MH). Fix from Michael Corrigan 197866338Seric of U.C. San Diego. 197966338Seric Fall back to other MX records if there is an error anywhere 198066338Seric in delivery (actually on MAIL or DATA -- RCPT is harder). 198166338Seric Suggested by John Gardiner Myers and Motonori Nakamura. 198266338Seric Revert to non-prototypes -- it turns out that our ANSI C 198366338Seric compiler is more forgiving than most others about 198466338Seric mixing prototyped extern declarations with non-prototyped 198566338Seric function definitions. 198666338Seric Fix a problem with multi-word class matching pointed out by 198766338Seric Neil Rickert. Given: 198866338Seric CX b a.b.c 198966338Seric R$+ $=X $+ $: $1 < $2 > $3 199066338Seric the input "user@a.b.c" failed instead of being properly 199166338Seric rewritten as "user@a.<b>.c". 199266338Seric Neil also convinced me that it was correct that $~ should match 199366338Seric only one token -- the problem is that it's always possible 199466338Seric to add another token, so $~ matches far too eagerly. 199566338Seric 199666338Seric6.45/6.21 93/03/25 199766338Seric Implement multi-word classes (properly!). 199866338Seric 199966338Seric6.44/6.21 93/03/25 200066338Seric Add X-Authentication-Warning: headers to clue users into possible 200166338Seric attempts to forge mail. This is on the authwarnings 200266338Seric privacy flag, but is the default. Suggested by Bryan 200366338Seric Costales of ICSI. 200466338Seric Pass default units for convtime in so they can be more reasonable. 200566338Seric Allow config files to always add a new Comments: header (i.e., 200666338Seric they will be added even if an old one already exists). 200766338Seric Suggested by Bryan Costales of ICSI. 200866338Seric Allow config files to delete an existing Return-Path: header. 200966338Seric These should only be added at final delivery. Suggested 201066338Seric by Bryan Costales of ICSI. 201166338Seric Some debugging additions. Suggested by Bryan Costales of ICSI. 201266338Seric Clean up logging of Family 0 addresses. Noted by David Muir 201366338Seric Sharnoff and others. 201466338Seric Add a "dequote" map class. This allows config files to strip 201566338Seric quotes off of addresses. Note that this is not a builtin 201666338Seric map, just a class -- so you have to define the map 201766338Seric using the K line. 201866338Seric Fix a bug in the queueup() loop getting a locked tf where in 201966338Seric very odd cases it can fall off the bottom and core dump. 202066338Seric Of course, it was P{r Emanuelsson who found it.... 202166338Seric Open a new transcript when splitting an envelope. Problem found 202266338Seric by Allan E Johannesen of WPI. 202366338Seric Improved error output in endmailer if the mailer core dumps. 202466338Seric CONFIG: Fix typo in UUCP mailer definition. 202566338Seric CONFIG: Default several of the new options on: eight bit input, 202666338Seric privacy flags set to "authwarnings", and message warning 202766338Seric set to 4h. 202866338Seric CONFIG: Use dequote map. 202966338Seric 203066338Seric6.43/6.20 93/03/23 203166338Seric Fix problem with assumption of an sa_len field in a generic 203266338Seric sockaddr -- it turns out that most vendors haven't 203366338Seric picked up this (very important) fix. 203466338Seric Change compilation flags for daemon code -- select one or both 203566338Seric of NETINET or NETISO, but don't ever set DAEMON manually. 203666338Seric CONFIG: add FEATURE(mailertable) to do IDA-style mailertables. 203766338Seric 203866338Seric6.42/6.19 93/03/19 203966338Seric Use Postmaster as default fallback return address, not root. 204066338Seric POSIX changes for file descriptor handling. 204166338Seric Diagnose errors writing new queue file. 204266338Seric If you change the owner using an owner- alias, also change the 204366338Seric error mode to EM_MAIL so that errors don't get dropped 204466338Seric into an inappropriate directory. Problem noted by 204566338Seric Allan E Johannesen of WPI. 204666338Seric If you are su'ed to root, send email as who you really are, not 204766338Seric as root. From Brian Kantor of U.C. San Diego. 204866338Seric Allow warning messages to be sent after a configurable interval 204966338Seric has passed without delivery. The message is sent only 205066338Seric once per envelope. This changes the format of the qf 205166338Seric file to have an F line, and the format of the T option 205266338Seric to accept take the format "return/warn" (both intervals). 205366338Seric Don't force all local names to lower case -- this was left over 205466338Seric from the wierd handling of case mapping on aliases. It 205566338Seric is now driven (as expected) by the "u" mailer flag. 205666338Seric Problem noted by P{r Emanuelsson. 205766338Seric Fix problem that caused headers on returned email to be trashed; 205866338Seric they were getting freed, but are still accessible via 205966338Seric BlankEnvelope. 206066338Seric Fix problem that caused bogus ids to be created on returned 206166338Seric mail. 206266338Seric Add support for ISO and other non-INET networking. This is by 206366338Seric no means finished yet. This does assume a lot of other 206466338Seric system support, like a version of gethostbyname that 206566338Seric returns non-AF_INET addresses. 206666338Seric CONFIG: change default on prog mailer to keep upper case in 206766338Seric user names (i.e., in the program command line). 206866338Seric CONFIG: strip trailing dots off of hosts in uucp mailer before 206966338Seric convert to bang format. 207066338Seric CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H 207166338Seric (MAIL_HUB) delivery that doesn't add local domain. Note 207266338Seric that this violates 821, but is probably "more correct" 207366338Seric for what we are trying to do. Problem pointed out by 207466338Seric Michael Graff of Iowa State. 207566338Seric 207666338Seric6.41/6.18 93/03/18 207766338Seric Clean up unnecessary creates of queue ids (i.e., empty qf files) 207866338Seric when not needed, such as when starting up an SMTP 207966338Seric connection. 208066338Seric Fix problem where split envelopes aren't instantiated in the queue. 208166338Seric This is quite a serious bug. 208266338Seric Owner- aliases had problems with leading spaces causing a 208366338Seric premature delimitation. 208466338Seric 208566338Seric6.40/6.18 93/03/18 208666338Seric Have ending 250 (after DATA) include the id; suggested by 208766338Seric Brian Kantor of UC San Diego. 208866338Seric Add logging on envelope splitting. 208966338Seric Change queue ids to have one more letter encoding the hour of 209066338Seric the day so that during a single day there is a greater 209166338Seric likelihood of uniqueness; requested by Brian Kantor. 209266338Seric 209366338Seric6.39/6.18 93/03/18 209466338Seric Fix minor compile problem if LOCKF is defined. 209566338Seric Define size of tobuf in conf.h. Observed by Toshinari Takahashi 209666338Seric of Toshiba. 209766338Seric Restore e_sender -- this is equivalent to e_from.q_paddr without 209866338Seric decorations such as angle brackets and comments. 209966338Seric OSF/1 on Alpha changes from Allan E Johannesen of WPI. 210066338Seric CONFIG: fix typo in S3 for list syntax (;: => :;). Thanks to 210166338Seric Christopher Hoover for noting the problem. 210266338Seric 210366338Seric6.38/6.17 93/03/17 210466338Seric Pass envelope to disconnect to avoid another use of CurEnv, which 210566338Seric can apparently end up being null at inopportune times. 210666338Seric Log "received from" as "relay=" for consistency (suggested by 210766338Seric John Gardiner Myers). 210866338Seric Fix major bug in header handling: if no From: line existed in 210966338Seric the header (so sendmail inserts one), and the sender is 211066338Seric an alias that has an owner, the From: line shows the 211166338Seric owner (as well as the envelope). Fixed by early binding 211266338Seric the headers (which will change debugging output). 211366338Seric HPUX portability patches from Michael J. Corrigan of UC San Diego. 211466338Seric Some attempts to adapt better to out of open file conditions. 211566338Seric Some changes to ctladdr handling in queue files. 211666338Seric 211766338Seric6.37/6.17 93/03/16 211866338Seric MAJOR CHANGE: delete e_sender and e_returnpath (why are these 211966338Seric different from e_from?) and $< macro. 212066338Seric Log correct IP address in relay= field even if the connection 212166338Seric times out. 212266338Seric Log "received from [RESPONSE]" on EF_RESPONSE messages (from 212366338Seric John Gardiner Myers). 212466338Seric Fixes to SysExMsg logging (sometimes just got "message: %s" 212566338Seric instead of "message: error message"), noted by Eric 212666338Seric Wassenaar. Also reported by Motonori Nakamura. 212766338Seric Improvements to MX piggybacking code, from Motonori Nakamura. 212866338Seric Fix case where CurHostName points to an auto variable that has 212966338Seric been deallocated (from Motonori Nakamura). 213066338Seric Fix bug causing newlines to be included in aliases if option 213166338Seric "n" (check alias RHS) is set; bug noted by David Muir 213266338Seric Sharnoff. 213366338Seric Fix problem causing user names that should be mapped to lower 213466338Seric case to not be mapped if they are sent during a queue 213566338Seric run. This greatly simplifies the case mapping code. 213666338Seric Problem noted by Allan E Johannesen of WPI. 213766338Seric Don't do recipient address rewriting in buildaddr. This 213866338Seric improperly did recipient rewriting on sender addresses, 213966338Seric and just seems bogus in general -- but the change could 214066338Seric break some .cf files. 214166338Seric Pass TZ envariable to child processes for System V. 214266338Seric CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to 214366338Seric define those rulesets. 214466338Seric KNOWN PROBLEM: I have seen some problems on SunOS that causes 214566338Seric the User Data Base to give errors on some addresses. I 214666338Seric have tracked the problem back at least as far as 93.02.15 214766338Seric (version 6.22). Running with debugging on makes it 214866338Seric go away, so I conclude that it is referencing uninitialized 214966338Seric stack data. I haven't been able to track this down yet. 215066338Seric 215166338Seric6.36/6.16 93/03/08 215266338Seric Allow local mailer to specify $@host -- this lets you assign the 215366338Seric "foo" part of jgm+foo to $h for passing in to the local 215466338Seric mailer. 215566338Seric Additional debug printing in getcanonname (show query type). 215666338Seric Don't add the e_fromdomain on sender addresses -- this interacts 215766338Seric wierdly with the owner- code. 215866338Seric Improve delivery logging to not log obvious or meaningless stuff. 215966338Seric Include numeric IP address in Received: lines per RFC 1123 section 216066338Seric 5.2.8. 216166338Seric Fixed a bug in checking stat() return value if restrictmailq is 216266338Seric set. Also, check the entire group set instead of just the 216366338Seric primary group. Both from John Gardiner Myers. 216466338Seric Don't have usrerr automatically print errno, since this is often 216566338Seric misleading. 216666338Seric Use transienterror() in makeconnection after connect() fails and 216766338Seric in openmailer after execve() fails (from Eric Wassenaar). 216866338Seric Also moved transienterror() from util.c to conf.c. 216966338Seric Clean up from= logging on response messages. 217066338Seric Undo patch allowing prescan to return a null vector -- it breaks 217166338Seric too many things. 217266338Seric Config: FEATURE(notsticky) lets you use UDB for everything coming 217366338Seric in to the machine, even if it is specifically targetted 217466338Seric to this machine. Without it, UDB is bypassed if the user 217566338Seric name is fully qualified. 217666338Seric Config: fix another minor botch with <> (local mailer wasn't 217766338Seric mapping them properly). 217866338Seric 217966338Seric6.35/6.15 93/03/05 218066338Seric Fix getrealhostname to return null if sinlen <= 0 -- this can 218166338Seric occur if stdin is a pipe. 218266338Seric Avoid infinite loop in getcanonname if name server return 218366338Seric NO_DATA (for example). 218466338Seric Config: avoid having C flag qualify list syntax and error syntax. 218566338Seric 218666338Seric6.34/6.14 93/03/05 218766338Seric Fix logging in deliver to not pass too many parameters to Ultrix 218866338Seric versions of syslog. 218966338Seric Don't write the pid file until after the daemon has actually 219066338Seric opened and conditioned the connection. 219166338Seric Consider addresses "different" if their q_uids differ (so that 219266338Seric two users forwarding to the same program will be seen 219366338Seric as different, rather than the same). 219466338Seric Fix problem with bad parameters in main() -- they set ExitStat 219566338Seric but don't exit. 219666338Seric Fix null pointer references through RealHostName -- painfully 219766338Seric discovered by Allan E Johannesen of WPI. 219866338Seric Fix bug causing user@@localhost to core dump (yuch). 219966338Seric Config: don't put two @host.dom.ain on users in $=E in SMTP 220066338Seric mailer. Also, catch user@ (no host) in ruleset 0. 220166338Seric 220266338Seric6.33/6.13 93/03/03 220366338Seric Config: add confCW_FILE as the name of the cw configuration file 220466338Seric (defaults to /etc/sendmail.cw). From P{r Emanuelsson. 220566338Seric Allow prescan to return a pointer to an empty list -- this is 220666338Seric not an error. Also, clean up error reporting to avoid 220766338Seric double errors (prescan reports once, then the caller 220866338Seric reports again). 220966338Seric Changes to avoid trusting T_ANY queries -- run them, but if you 221066338Seric don't get the info you expected, do T_A and T_MX queries 221166338Seric anyhow. This also fixes an oversight where _res.options 221266338Seric bits were being ignored. 221366338Seric If PRIV_NOVRFY is set, use 252 response code instead of 502 per 221466338Seric RFC 1123 section 5.2.3. It's not 100% clear that this 221566338Seric is correct, but it probably works better with stupid 221666338Seric mailers that do a VRFY and only check the first digit. 221766338Seric 221866338Seric6.32/6.12 93/03/02 221966338Seric Fix uninitialized variable "protocol" in smtp code. 222066338Seric Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI. 222166338Seric Additional hooks for RFC 1427 (ESMTP SIZE extension). This 222266338Seric includes requiring that enoughspace() know the system 222366338Seric block size, which will undoubtedly break most ports. 222466338Seric Trace flag 19 in use for srvrsmtp.c. 222566338Seric Additional logging -- notably the sending mailer name. This 222666338Seric also changes the delivery logging to strict field=value 222766338Seric syntax. 222866338Seric Fix some problems with messages getting sent even to addresses 222966338Seric that had been marked bad -- from Eric Wassenaar. 223066338Seric More WIDE changes: accept host name inside [...] as non-MXed 223166338Seric host. This is intended ONLY for use inside firewalled 223266338Seric environments, where the MX points at the gateway. 223366338Seric Change .cf file conventions so that mapping for <> addresses 223466338Seric don't have an @ in them (to avoid confusing the C mailer 223566338Seric flag). Pointed out by Neil Rickert. 223666338Seric Config extensions for Sam Leffler's FlexFAX software. 223766338Seric 223866338Seric6.31/6.10 93/02/28 223966338Seric Fix some more bugs in alias owner code -- there were some wierd 224066338Seric cases where an error in a non-aliased name would override 224166338Seric the return info in an aliased name with an owner. 224266338Seric Changes from WIDE Project, forwarded to me by Motonori Nakamura: 224366338Seric Log actual delivery host (after MX et al); from 224466338Seric yasuhiro@dcl.co.jp. 224566338Seric Log daemon startup. 224666338Seric Deliver Postmaster copies without a body. 224766338Seric Better logging of SMTP senders. 224866338Seric Send all program email as daemon even when local. 224966338Seric As requested in various forms from many people, accept -qIstring 225066338Seric to limit queue runs to jobs with queue-id matching string. 225166338Seric Similarly for -qRstring for recipients, -qSstring for 225266338Seric senders. 225366338Seric Initial hooks for ESMTP support (see RFC 1425). 225466338Seric Fixed a syntax error in the UUCP mailer specification that caused 225566338Seric core dumps on startup. 225666338Seric Check for missing A= or P= arguments in mailer definitions. 225766338Seric 225866338Seric6.30/6.10 93/02/27 225966338Seric Require FROZENCONFIG compilation flag to include frozen 226066338Seric configuration code. Frozen configuration is really 226166338Seric not a very good idea any more, particularly in shared 226266338Seric library environments. 226366338Seric Do better checking of errno after opens of :include: and .forward 226466338Seric files to defer delivery on network and other transient 226566338Seric errors. Suggestion from Craig Everhart. 226666338Seric Fix minor botch in read timeout macro processing. 226766338Seric Add FEATURE(nouucp) to config files for sites that know absolutely 226866338Seric nothing about UUCP. 226966338Seric Add built cf files to distribution tape and clarify how to build 227066338Seric them if you don't have the Berkeley make. 227166338Seric Some sizeof(long) portability changes for the Alpha, from Allan 227266338Seric E Johannesen. 227366338Seric Add "restrictmailq" privacy flag -- if set, only people in the same 227466338Seric group as your queue directory can print the queue. If you 227566338Seric set this, be sure you also restrict access to log files.... 227666338Seric Fix another bug in owner-list stuff that can cause data files to 227766338Seric be "lost". 227866338Seric Fix a bug with queue runs that cause forwards to yourself to go 227966338Seric into alias/forwarding loops. I'm still iffy about this 228066338Seric fix. 228166338Seric Fix from Eric Wassenaar for suppression of return message code. 228266338Seric 228366338Seric6.29/6.9 93/02/24 228466338Seric Fix yet another problem in alias owner code -- put the wrong return 228566338Seric address on the enclosed return-to-sender letter. 228666338Seric 228766338Seric6.28/6.9 93/02/24 228866338Seric Fix botch in alias owner code that caused it to not operate if the 228966338Seric error was detected locally. 229066338Seric 229166338Seric6.27/6.9 93/02/24 229266338Seric M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include 229366338Seric file <sys/mount.h>. 229466338Seric Miscellaneous bug fixes from Eric Wassenaar: 229566338Seric sendmail -bv -t logs the from line even though in verify 229666338Seric mode only. 229766338Seric sendmail -v can go into queue mode if shouldqueue returns 229866338Seric TRUE. 229966338Seric Add route-addr pruning per RFC 1123 section 5.3.3. This can be 230066338Seric disabled using the "R" option. 230166338Seric Delete (always undocumented) -R flag (save original recipients); 230266338Seric there are ways to syslog(3) these now. 230366338Seric Clean up SMTP reply codes -- specify them as needed in the code, 230466338Seric instead of in conf.c -- this was needed during the NCP to 230566338Seric TCP transition, but seems silly now. This also changes 230666338Seric parameters to message and nmessage. 230766338Seric Have mailstats read the .cf file to find the sendmail.st file and 230866338Seric get text versions of mailer names. An initial version of 230966338Seric this code was provided by Tuominen Keijo (although the 231066338Seric comments indicate the good bits were written by "E.V."). 231166338Seric Add yet more System V compatibility hacks. 231266338Seric Fix bug in VRFY code (assumes everything must be a local user). 231366338Seric Allow specification of any of the hard-wired pathnames in the 231466338Seric Makefile. 231566338Seric Delete concept of "trusted users" -- this really didn't provide 231666338Seric any security anyway, and caused some problems. 231766338Seric Delete last vestige of support for the word "at" as an equivalent 231866338Seric to the character "@". 231966338Seric Propagate owner-foo alias information into the envelope sender. 232066338Seric Based on code from John Gardiner Myers. This is a major 232166338Seric semantic change -- beware! 232266338Seric Allow $@ on LHS to indicate "match zero" -- this is used to match 232366338Seric the null expression. 232466338Seric 232566338Seric6.26/6.8 93/02/21 232666338Seric Don't "lose" queue runs. Very important fix from (who else?) 232766338Seric Eric Wassenaar. 232866338Seric Completely reset state on RSET command -- from Eric Wassenaar. 232966338Seric Send error messages and return receipts using an envelope sender 233066338Seric of <> regardless of the setting of $n. Rewriting rules 233166338Seric can undo this if they feel the necessity, as might be 233266338Seric needed for networks that don't understand the syntax. 233366338Seric This is permitted by RFC 821 section 3.6 and required by 233466338Seric RFC 1123 section 5.3.3. THIS REQUIRES VERSION 4 CONFIG 233566338Seric FILES because the rulesets must be able to parse <> 233666338Seric properly. 233766338Seric Don't ever send error messages to "<>" -- they will get sent to 233866338Seric the local postmaster or dumped in /usr/tmp/dead.letter 233966338Seric instead. Per RFC 1123 section 5.3.3. 234066338Seric Explicitly check for email to yourself as a dotted quad. You 234166338Seric have to call $[ [ ... ] $] to get this. 234266338Seric Up the message timeout to five days per RFC 1123 section 5.3.1.1. 234366338Seric Make all read timeouts individually configurable, as strongly 234466338Seric recommended by RFC 1123 section 5.3.2. 234566338Seric Use f_bavail (blocks available to regular users) instead of f_bfree 234666338Seric (blocks available to superuser) in free block checks. 234766338Seric Change $d macro to be the current time, not the origination time, 234866338Seric since this is consistent with how it is used now. 234966338Seric Generalization of enoughspace from Eric Wassenaar covering 235066338Seric SGI, Apollo, HPUX, Ultrix, and SunOS. 235166338Seric Ignore process group signals -- some front ends can do this if 235266338Seric you kill a window too quickly. From Eric Wassenaar. 235366338Seric Change umask to 022. 235466338Seric 235566338Seric6.25/6.8 93/02/20 235666338Seric Close all cached connections before calling mailers and after 235766338Seric forking for delivery (caused double closes which resulted 235866338Seric in false errors). 235966338Seric Add FEATURE(redirect) in config files -- this allows you to alias 236066338Seric old addresses to a pointer to the new address that will 236166338Seric give a 551 error message, but not deliver the mail. 236266338Seric Some code changes to make the 551 errors look pretty. 236366338Seric Names of M4 program paths in config files have changed -- they 236466338Seric are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS. 236566338Seric Fix a bug in the QSELFREF code having to do with empty .forward 236666338Seric files, reported by Eric Wassenaar. 236766338Seric Add option "p" (privacy flags); this allows you to tune how 236866338Seric picky the SMTP server will be. This also adds the 236966338Seric confPRIVACY_FLAGS M4 macro in the config files. 237066338Seric Add option "b" (minimum blocks free). If there are fewer than 237166338Seric this number of blocks free on the filesystem containing 237266338Seric the queue directory, the SMTP MAIL command will return 237366338Seric a 452 response and ask you to try again later. This 237466338Seric also adds the confMIN_FREE_BLOCKS M4 macro in the config 237566338Seric files. 237666338Seric Made VRFY just verify (doesn't expand aliases and .forward files); 237766338Seric EXPN does full expansion. RCPT in queue-only mode also 237866338Seric doesn't chase aliases and .forward. 237966338Seric 238066338Seric6.24/6.7 93/02/19 238166338Seric Increase the number of domain search entries in domain.c to allow 238266338Seric for the extra "" entry indicating the root domain. 238366338Seric Reported by Motonori Nakamura of Kyoto U. 238466338Seric Add a "SMART_HOST" in the configs for UUCP-connected sites that 238566338Seric want to forward all mail with extra "@"s to that site. 238666338Seric Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to 238766338Seric be specified as ``mailer:hostname'' to use an alternate 238866338Seric mailer. 238966338Seric Clarified and updated some wording in the Operations Guide. 239066338Seric Add the "c" mailer flag -- this suppresses all comment parts of 239166338Seric addresses (requested by John Curran of NEARnet). 239266338Seric Have -v print prompts in -bt mode even if stdin is not a terminal 239366338Seric (default behaviour is to be silent if not reading from 239466338Seric a terminal). Suggested by Bryan Costales, ICSI. 239566338Seric Move the metacharacters from C0 space (\001-\037) into C1 space 239666338Seric (\201-\237). This also fixes a bunch of potential bugs 239766338Seric with G1 characters (\240-\276) in headers relating to 239866338Seric negative numbers passed to isspace() et al. 239966338Seric Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias 240066338Seric database if YPCOMPAT is #defined. Enhancement from 240166338Seric Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd. 240266338Seric Add "list" Precedence (-30); this can be used with old sendmails 240366338Seric which will map to precedence 0 (which will return error 240466338Seric messages). Suggested by Stephen R. van den Berg. 240566338Seric Many bug fixes from Eric Wassenaar of the National Institute for 240666338Seric Nuclear and High-Energy Physics, Amsterdam: 240766338Seric Clear timeouts properly on open failures in include(). 240866338Seric Don't dereference through NULL if no home directory found. 240966338Seric Re-establish SIGCHLD signal on System 5 in reapchild(). 241066338Seric Avoid NULL pointer reference on -pFOO flag. 241166338Seric Properly handle backslash escapes in comments. 241266338Seric Correctly check reply status on SMTP NOOP command. 241366338Seric Properly save SMTP error message if peer gives 241466338Seric "Service Shutting Down" message. 241566338Seric Avoid writing to the transcript if it couldn't be opened. 241666338Seric Signal errors in SMTP children to parent properly. 241766338Seric Handle self references in a list more globally (include a 241866338Seric QSELFREF bit in the address flags). This enhancement 241966338Seric was suggested by Eric Wassenaar. 242066338Seric Use initgroups() in hpux, even though it's System-V based. The 242166338Seric HASINITGROUPS compile flag can set this on other systems. 242266338Seric This HPUX behaviour was pointed out by Eric Wassenaar. 242366338Seric 242466338Seric6.23/6.6 93/02/16 242566338Seric Clean up handling of LogLevel to make it easier to figure out 242666338Seric what's on what level. 242766338Seric Change log levels to have some consistency: 242866338Seric 1 serious system failures, security problems 242966338Seric 2 lost communications, protocol failures 243066338Seric 3 other serious failures 243166338Seric 4 minor errors 243266338Seric 5 message collection 243366338Seric 6 vrfy logging, creation of return-to-sender 243466338Seric 7 delivery failures 243566338Seric 8 delivery successes 243666338Seric 9 delivery tempfails (queue ups) 243766338Seric 10 database expansion 243866338Seric >64 debugging 243966338Seric Allow IDA-style separated processing on S= and R= in Mailer 244066338Seric definition lines. Note that rulesets 1 and 2 are 244166338Seric still used for both addresses as before. Bruce Lilly 244266338Seric gave a convincing argument that RFC976 insists on 244366338Seric this behaviour. 244466338Seric Added some time zones to arpatounix -- they may not be in the 244566338Seric standards, but they are in use. However, I may delete 244666338Seric arpatounix entirely -- there appears to be no reason 244766338Seric for it to exist. 244866338Seric Change to UUCP mailer (in cf directory) to try to do a saner job. 244966338Seric I'm still not certain about this mailer in general. 245066338Seric 245166338Seric6.22/6.5 93/02/15 245266338Seric Fix bug that prevents saving letters in ~/dead.letter. 245366338Seric Don't add angle brackets in VRFY command if angle brackets already 245466338Seric exist in the address. 245566338Seric Fix bogus error message in udbexpand. 245666338Seric Null terminate host buffers in buildaddr (broken in 6.21) -- 245766338Seric IMPORTANT FIX!! 245866338Seric 245966338Seric6.21/6.5 93/02/15 246066338Seric Fix another incorrect error message in alias.c, found by Azuma 246166338Seric Okamoto. 246266338Seric Fix a couple of problems in the more-configurable config files, 246366338Seric found by Tom Ivar Helbekkmo. 246466338Seric Fix problem with quoted :include: entries. 246566338Seric Don't duplicate the filename on verbose printing of .forward and 246666338Seric :include: contents. 246766338Seric Extend size of prescan buffer (to allow bigger addresses). Also, 246866338Seric detect some buffer overflows. 246966338Seric Log user SMTP protocol errors (log level 4). 247066338Seric 247166338Seric6.20/6.4 93/02/14 247266338Seric Fix another problem in the MCI state machine caused when there 247366338Seric were errors generated from the other end to commands 247466338Seric other than RCPT. 247566338Seric 247666338Seric6.19/6.4 93/02/14 247766338Seric Include load average support for DEC Alpha running OSF/1. 247866338Seric Fix multiple-response problem with errors in MAIL From: line. 247966338Seric Fix SMTP reply codes for invalid address syntaxes (give 501; 248066338Seric never give multiple error messages for a single message). 248166338Seric Fix problem where a cached connection timeout rejects all 248266338Seric later connects to that host. 248366338Seric Fix incorrect error message if alias.c is compiled with DBM only. 248466338Seric Additional changes to fix nested conditionals (from Bruce Lilly). 248566338Seric Recover more gracefully from operating system failures, particularly 248666338Seric NULL returns from openmailer (from Noritoshi Demizu, 248766338Seric OMRON Corporation). 248866338Seric Log forward, alias, and userdb expand operations on log level 10; 248966338Seric concept suggested by P{r (Pell) Emanuelsson. 249066338Seric Changes for HPUX 8.07 compatibility. 249166338Seric 249266338Seric6.18/6.4 93/02/12 249366338Seric Allow any config option to be set using an M4 define. 249466338Seric Change UNAME compile flag to HASUNAME for IDA compatibility 249566338Seric (besides, it's a better name). 249666338Seric Note in README that on SunOS it must be linked -Bstatic. 249766338Seric Fairly major change in domain.c to handle wildcard MX records 249866338Seric more rationally. NOTE: the "w" option (no wildcard MX 249966338Seric records match local domain) has been eliminated. 250066338Seric Fix some unset variable references pointed out by Bruce Lilly. 250166338Seric Fix host name in process titles when using cached connection. 250266338Seric 250366338Seric6.17/6.3 93/01/28 250466338Seric Fix System 5 compatibility changes to be compatible with the rest 250566338Seric of the world. 250666338Seric 250766338Seric6.16/6.3 93/01/28 250866338Seric Experimental fix for problem handling errors in the SMTP 250966338Seric protocol in conjunction with connection caching. 251066338Seric System 5 compatibility changes. 251166338Seric 251266338Seric6.15/6.3 93/01/26 251366338Seric Fix a bug that causes local mail delivered using -odq to be 251466338Seric eliminated as a duplicate (because it matched the 251566338Seric ctladdr, now passed in as a C line). These changes 251666338Seric are pretty tricky...... 251766338Seric 251866338Seric6.14/6.3 93/01/25 251966338Seric Add debugging for some MCI errors. 252066338Seric 252166338Seric6.13/6.3 93/01/22 252266338Seric Fix -e compatibility flag to take a value. 252366338Seric Fix a couple of minor compilation warnings on Sun cc. 252466338Seric Improve error messages in a few cases to be more self-explanatory. 252566338Seric 252666338Seric6.12/6.3 93/01/21 252766338Seric Fix yet-another problem with environment handling, pointed out 252866338Seric by Yoshitaka Tokugawa and Tom Ivar Helbekkmo. 252966338Seric Some heuristics to try to limit resource exhaustion problems 253066338Seric if a downstream host has been down for a long time. 253166338Seric Fix problem with incorrect host name being logged in "Connection 253266338Seric timed out" messages (from Tom Ivar Helbekkmo). 253366338Seric Fix some ANSI C problems (from Takahiro Kanbe). 253466338Seric Properly log message sender on returned mail during queue run. 253566338Seric Count number of recipients properly. 253666338Seric Fix a problem in yp map code. 253766338Seric Diagnose "message timed out" (from Motonori Nakamura). 253866338Seric 253966338Seric6.11/6.3 93/01/20 254066338Seric Fix problem with address delimitor inside quotes. 254166338Seric Define $k and $=k to be the UUCP name (from the uname call) 254266338Seric based on code from Bruce Lilly. 254366338Seric 254466338Seric6.10/6.2 93/01/18 254566338Seric Implement arpatounix (largely code from Bruce Lilly). 254666338Seric Log more info (suggested by John Myers). 254766338Seric Allow nested $?...$|...$. (inspired by code from Bruce Lilly of 254866338Seric Sony US). 254966338Seric POSIX compatibility (noted by Keith Bostic). 255066338Seric Handle SMTP MAIL command errors properly (urged by several people, 255166338Seric notably John Myers of CMU). 255266338Seric Do early diagnosis of .cf errors (notably referencing a RHS 255366338Seric substitution that isn't on the LHS). 255466338Seric Adjust checkpointing to better handle batched recipients, suggested 255566338Seric by John Myers. 255666338Seric Fix miscellaneous bugs. 255766338Seric (config files:) Implement MAIL_HUB for all local mail (to handle 255866338Seric NFS-mounted directories) as urged by Tom Ivar Helbekkmo 255966338Seric of the Norwegian School of Economics. 256066338Seric 256166338Seric6.9/6.1 93/01/13 256266338Seric Environment handling simplification/bug fix -- child processes 256366338Seric get a minimal, fixed environment. This avoids different 256466338Seric behaviour in queue runs. 256566338Seric Handle commas inside comments properly. 256666338Seric Properly limit large messages submitted in -obq mode. 256766338Seric 256866338Seric6.8/6.1 93/01/10 256966338Seric Check mtime of thaw file against .cf and sendmail binary, based on 257066338Seric code from John Myers. 257166338Seric 257266338Seric6.7/6.1 93/01/10 257366338Seric MX piggybacking, based on code from John Myers@CMU. 257466338Seric Allow checkcompat to return -1 to mean tempfail. 257566338Seric Bug fix in m_mno computation. 257666338Seric 257766338Seric6.6/6.1 93/01/09 257866338Seric Tuning of queueing functions as recommended by John Gardiner Myers. 257966338Seric Return mail headers (no body) on messages with negative precedence. 258066338Seric Minor other bug fixes. 258166338Seric 258266338Seric6.5/6.1 93/01/03 258366338Seric Fix botch causing queued headers to have ?XX? prefixes. 258466338Seric 258566338Seric6.4/6.1 93/01/02 258666338Seric Changes to recognize special mailer types (e.g., file) early. 258766338Seric 258866338Seric6.3/6.1 93/01/01 258966338Seric Pass timeouts to sfgets. 259066338Seric Check for control characters in addresses. 259166338Seric Fixed deferred error reporting. 259266338Seric Report duplicate aliases. 259366338Seric Handle mixed case recursive aliases. 259466338Seric Misc bug fixes. 259566338Seric 259666338Seric6.2/6.1 92/12/30 259766338Seric Put return-receipt-to on a conf.c flag (but don't set it). 259866338Seric Fix minor syslog problem. 2599