RELEASE_NOTES
上传用户:xu_441
上传日期:2007-01-04
资源大小:1640k
文件大小:330k
- this can fill your mqueue partition -- this is a possible
- denial-of-service attack.
- Don't reject all numeric local user names unless HESIOD is
- defined. It turns out that Posix allows all-numeric
- user names. Fix from Tony Sanders of BSDI.
- Add service switch support. If the local OS has a service
- switch (e.g., /etc/nsswitch.conf on Solaris or /etc/svc.conf
- on DEC systems) that will be used; otherwise, it falls back
- to using a local mechanism based on the ServiceSwitchFile
- option (default: /etc/service.switch). For example, if the
- service switch lists "files" and "nis" for the aliases
- service, that will be the default lookup order. the "files"
- ("local" on DEC) service type expands to any alias files
- you listed in the configuration file, even if they aren't
- actually file lookups.
- Option I (NameServerOptions) no longer sets the "UseNameServer"
- variable which tells whether or not DNS should be considered
- canonical. This is now determined based on whether or not
- "dns" is in the service list for "hosts".
- Add preliminary support for the ESMTP "DSN" extension (Delivery
- Status Notifications). DSN notifications override
- Return-Receipt-To: headers, which are bogus anyhow --
- support for them has been removed.
- Add T=mts-name-type/address-type/diagnostic-type keyletter to mailer
- definitions to define the types used in DSN returns for
- MTA names, addresses, and diagnostics respectively.
- Extend heuristic to force running in ESMTP mode to look for the
- five-character string "ESMTP" anywhere in the 220 greeting
- message (not just the second line). This is to provide
- better compatibility with other ESMTP servers.
- Print sequence number of job when running the queue so you can
- easily see how much progress you have made. Suggested
- by Peter Wemm of DIALix.
- Map newlines to spaces in logged message-ids; some versions of
- syslog truncate the rest of the line after newlines.
- Suggested by Fletcher Mattox of U. Texas.
- Move up forking for job runs so that if a message is split into
- multiple envelopes you don't get "fork storms" -- this
- also improves the connection cache utilization.
- Accept "<<>>", "<<<>>>", and so forth as equivalent to "<>" for
- the purposes of refusing to send error returns. Suggested
- by Motonori Nakamura of Ritsumeikan University.
- Relax rules on when a file can be written when referenced from
- the aliases file: use the default uid/gid instead of the
- real uid/gid. This allows you to create a file owned by
- and writable only by the default uid/gid that will work
- all the time (without having the setuid bit set). Change
- suggested by Shau-Ping Lo and Andrew Cheng of Sun
- Microsystems.
- Add "DialDelay" option (no short name) to provide an "extra"
- delay for dial on demand systems. If this is non-zero
- and a connect fails, sendmail will wait this long and
- then try again. If it takes longer than the kernel
- timeout interval to establish the connection, this
- option can give the network software time to establish
- the link. The default units are seconds.
- Move logging of sender information to be as early as possible;
- previously, it could be delayed a while for SMTP mail
- sent to aliases. Suggested by Brad Knowles of the
- Defense Information Systems Agency.
- Call res_init() before setting RES_DEBUG; this is required by
- BIND 4.9.3, or so I'm told. From Douglas Anderson of
- the National Computer Security Center.
- Add xdelay= field in logs -- this is a transaction delay, telling
- you how long it took to deliver to this address on the
- last try. It is intended to be used for sorting mailing
- lists to favor "quick" addresses. Provided for use by
- the mailprio scripts (see below).
- If a map cannot be opened, and that map is non-optional, and
- an address requires that map for resolution, queue the
- map instead of bouncing it. This involves creating a
- pseudo-class of maps called "bogus-map" -- if a required
- map cannot be opened, the class is changed to bogus-map;
- all queries against bogus-map return "tempfail". The
- bogus-map class is not directly accessible. A sample
- implementation was donated by Jem Taylor of Glasgow
- University Computing Service.
- Fix a possible core dump when mailing to a program that talks
- SMTP on its standard input. Fix from Keith Moore of
- the University of Kentucky.
- Make it possible to resolve filenames to $#local $: @ /filename;
- previously, the "@" would cause it to not be recognized
- as a file. Problem noted by Brian Hill of U.C. Davis.
- Accept a -1 signal to re-exec the daemon. This only works if
- argv[0] is a full path to sendmail.
- Fix bug in "addr=..." field in O option on little-endian machines
- -- the network number wasn't being converted to network
- byte order. Patch from Kurt Lidl of Pix Technologies
- Corporation.
- Pre-initialize the resolver early on; this is to avoid a bug with
- BIND 4.9.3 that can cause the _res.retry field to get
- reset to zero, causing all name server lookups to time
- out. Fix from Matt Day of Artisoft.
- Restore T line (trusted users) in config file -- but instead of
- locking out the -f flag, they just tell whether or not
- an X-Authentication-Warning: will be added. This really
- just creates new entries in class 't', so "Ft/file/name"
- can be used to read trusted user names from a file.
- Trusted users are also allowed to execute programs even
- if they have a shell that isn't in /etc/shells.
- Improve NEWDB alias file rebuilding so it will create them
- properly if they do not already exist. This had been
- a MAYBENEXTRELEASE feature in 8.6.9.
- Check for @:@ entry in NIS maps before starting up to avoid
- (but not prevent, sigh) race conditions. This ought to
- be handled properly in ypserv, but isn't. Suggested by
- Michael Beirne of Motorola.
- Refuse connections if there isn't enough space on the filesystem
- holding the queue. Contributed by Robert Dana of Wolf
- Communications.
- Skip checking for directory permissions in the path to a file
- when checking for file permissions iff setreuid()
- succeeded -- it is unnecessary in that case. This avoids
- significant performance problems when looking for .forward
- files. Based on a suggestion by Win Bent of USC.
- Allow symbolic ruleset names. Syntax can be "Sname" to get an
- arbitrary ruleset number assigned or "Sname = integer"
- to assign a specific ruleset number. Reference is
- $>name_or_number. Names can be composed of alphas, digits,
- underscore, or hyphen (first character must be non-numeric).
- Allow -o flag on AliasFile lines to make the alias file optional.
- From Bryan Costales of ICSI.
- Add NoRecipientAction option to handle the case where there is
- no legal recipient header in the message. It can take
- on values:
- None Leave the message as is. The
- message will be passed on even
- though it is in technically
- illegal syntax.
- Add-To Add a To: header with any
- recipients that it can find from
- the envelope. This risks exposing
- Bcc: recipients.
- Add-Apparently-To Add an Apparently-To: header. This
- has almost no redeeming social value,
- and is provided only for back
- compatibility.
- Add-To-Undisclosed Add a header reading
- To: undisclosed-recipients:;
- which will have the effect of
- making the message legal without
- exposing Bcc: recipients.
- Add-Bcc To add an empty Bcc: header.
- There is a chance that mailers down
- the line will delete this header,
- which could cause exposure of Bcc:
- recipients.
- The default is NoRecipientAction=None.
- Truncate (rather than delete) Bcc: lines in the header. This
- should prevent later sendmails (at least, those that don't
- themselves delete Bcc:) from considering this message to
- be non-conforming -- although it does imply that non-blind
- recipients can see that a Bcc: was sent, albeit not to whom.
- Add SafeFileEnvironment option. If declared, files named as delivery
- targets must be regular files in addition to the regular
- checks. Also, if the option is non-null then it is used as
- the name of a directory that is used as a chroot(2)
- environment for the delivery; the file names listed in an
- alias or forward should include the name of this root.
- For example, if you run with
- O SafeFileEnvironment=/arch
- then aliases should reference "/arch/rest/of/path". If a
- value is given, sendmail also won't try to save to
- /usr/tmp/dead.letter (instead it just leaves the job in the
- queue as Qfxxxxxx). Inspired by *Hobbit*'s sendmail patch kit.
- Support -A flag for alias files; this will comma concatenate like
- entries. For example, given the aliases:
- list: member1
- list: member2
- and an alias file declared as:
- OAhash:-A /etc/aliases
- the final alias inserted will be "list: member1,member2";
- without -A you will get an error on the second and subsequent
- alias for "list". Contributed by Bryan Costales of ICSI.
- Line-buffer transcript file. Suggested by Liudvikas Bukys.
- Fix a problem that could cause very long addresses to core dump in
- some special circumstances. Problem pointed out by Allan
- Johannesen.
- (Internal change.) Change interface to expand() (macro expansion)
- to be simpler and more consistent.
- Delete check for funny qf file names. This didn't really give
- any extra security and caused some people some problems.
- (If you -really- want this, define PICKY_QF_NAME_CHECK
- at compile time.) Suggested by Kyle Jones of UUNET.
- (Internal change.) Change EF_NORETURN to EF_NO_BODY_RETN and
- merge with DSN code; this is simpler and more consistent.
- This may affect some people who have written their own
- checkcompat() routine.
- (Internal change.) Eliminate `D' line in qf file. The df file
- is now assumed to be the same name as the qf file (with
- the `q' changed to a `d', of course).
- Avoid forking for delivery if all recipient mailers are marked as
- "expensive" -- this can be a major cost on some systems.
- Essentially, this forces sendmail into "queue only" mode
- if all it is going to do is queue anyway.
- Avoid sending a null message in some rather unusual circumstances
- (specifically, the RCPT command returns a temporary
- failure but the connection is lost before the DATA
- command). Fix from Scott Hammond of Secure Computing
- Corporation.
- Change makesendmail to use a somewhat more rational naming scheme:
- Makefiles and obj directories are named $os.$rel.$arch,
- where $os is the operating system (e.g., SunOS), $rel is
- the release number (e.g., 5.3), and $arch is the machine
- architecture (e.g., sun4). Any of these can be omitted,
- and anything after the first dot in a release number can
- be replaced with "x" (e.g., SunOS.4.x.sun4). The previous
- version used $os.$arch.$rel and was rather less general.
- Change makesendmail to do a "make depend" in the target directory
- when it is being created. This involves adding an empty
- "depend:" entry in most Makefiles.
- Ignore IDENT return value if the OSTYPE field returns "OTHER",
- as indicated by RFC 1413. Pointed out by Kari Hurtta
- of the Finnish Meteorological Institute.
- Fix problem that could cause multiple responses to DATA command
- on header syntax errors (e.g., lines beginning with colons).
- Problem noted by Jens Thomassen of the University of Oslo.
- Don't let null bytes in headers cause truncation of the rest of
- the header.
- Log Authentication-Warning:s. Suggested by Motonori Nakamura.
- Increase timeouts on message data puts to allow time for receivers
- to canonify addresses in headers on the fly. This is still
- a rather ugly heuristic. From Motonori Nakamura.
- Add "HasWildcardMX" suboption to ResolverOptions; if set, MX
- records are not used when canonifying names, and when MX
- lookups are done for addressing they must be fully
- qualified. This is useful if you have a wildcard MX record,
- although it may cause other problems. In general, don't use
- wildcard MX records. Patch from Motonori Nakamura.
- Eliminate default two-line SMTP greeting message. Instead of
- adding an extra "ESMTP spoken here" line, the word "ESMTP"
- is added between the first and second word of the first
- line of the greeting message (i.e., immediately after the
- host name). This eliminates the need for the BROKEN_SMTP_PEERS
- compile flag. Old sendmails won't see the ESMTP, but that's
- acceptable because SIZE was the only useful extension that
- old sendmails understand.
- Avoid gethostbyname calls on UNIX domain sockets during SIGUSR1
- invoked state dumps. From Masaharu Onishi.
- Allow on-line comments in .forward and :include: files; they are
- introduced by the string "<LWSP>#@#<LWSP>", where <LWSP>
- is a space or a tab. This is intended for native
- representation of non-ASCII sets such as Japanese, where
- existing encodings would be unreadable or would lose
- data -- for example,
- <motonori@cs.ritsumei.ac.jp> NAKAMURA Motonori
- (romanized/less information)
- <motonori@cs.ritsumei.ac.jp> =?ISO-2022-JP?B?GyRCQ2ZCPBsoQg==?=
- =?ISO-2022-JP?B?GyRCQUdFNRsoQg==?=
- (with MIME encoding, not human readable)
- <motonori@cs.ritsumei.ac.jp> #@# ^[$BCfB<^[(B ^[$BAGE5^[(B
- (native encoding with ISO-2022-JP)
- The last form is human readable in the Japanese environment.
- Based on a fix from (surprise!) Motonori Nakamura.
- Don't make SMTP error returns on MAIL FROM: line be "sticky" for all
- messages to that host; these are most frequently associated
- with addresses rather than the host, with the exception of
- 421 (service shutting down). The effect was to cause queues
- to sometimes take an excessive time to flush. Reported by
- Robert Sargent of Southern Geographics Technologies and
- Eric Prestemon of American University.
- Add Nice=N mailer option to set the niceness at which a mailer will
- run. This is actually a relative niceness (that is, an
- increment on the background value).
- Log queue runs that are skipped due to high loads. They are logged
- at LOG_INFO priority iff the log level is > 8. Contributed
- by Bruce Nagel of Data General.
- Allow the error mailer to accept a DSN-style error status code
- instead of an sysexits status code in the host part.
- Anything with a dot will be interpreted as a DSN-style code.
- Add new mailer flag: F=3 will tell translations to Quoted-Printable
- to encode characters that might be munged by an EBCDIC system
- in addition to the set required by RFC 1521. The additional
- characters are !, ", #, $, @, [, , ], ^, `, {, |, }, and ~.
- (Think of "IBM 360" as the mnemonic for this flag.)
- Change check for mailing to files to look for a pathname of [FILE]
- rather than looking for the mailer named *file*. The mapping
- of leading slashes still goes to the *file* mailer. This
- allows you to implement the *file* mailer as a separate
- program, for example, to insert a Content-Length: header
- or do special security policy. However, note that the usual
- initial checking for the file permissions is still done, and
- the program in question needs to be very careful about how
- it does the file write to avoid security problems.
- Be able to read ~root/.forward even if the path isn't accessible to
- regular users. This is disrecommended because sendmail
- sometimes does not run as root (e.g., when an unsafe option
- is specified on the command line), but should otherwise be
- safe because .forward files must be owned by the user for
- whom mail is being forwarded, and cannot be a symbolic link.
- Suggested by Forrest Aldrich of Wang Laboratories.
- Add new "HostsFile" option that is the pathname to the /etc/hosts
- file. This is used for canonifying hostnames when the
- service type is "files".
- Implement programs on F (read class from file) line. The syntax is
- Fc|/path/to/program to read the output from the program
- into class "c".
- Probe the network interfaces to find alternate names for this
- host. Requires the SIOCGIFCONF ioctl call. Code
- contributed by SunSoft.
- Add "E" configuration line to set or propagate environment
- variables into children. "E<envar>" will propagate
- the named variable from the environment when sendmail
- was invoked into any children it calls; "E<envar>=<value>"
- sets the named variable to the indicated value. Any
- variables not explicitly named will not be in the child
- environment. However, sendmail still forces an
- "AGENT=sendmail" environment variable, in part to enforce
- at least one environment variable, since many programs and
- libraries die horribly if this is not guaranteed.
- Change heuristic for rebuilding both NEWDB and NDBM versions of
- alias databases -- new algorithm looks for the substring
- "/yp/" in the file name. This is more portable and involves
- less overhead. Suggested by Motonori Nakamura.
- Dynamically allocate the queue work list so that you don't lose
- jobs in large queue runs. The old QUEUESIZE compile parameter
- is replaced by QUEUESEGSIZE (the unit of allocation, which
- should not need to be changed) and the MaxQueueRunSize option,
- which is the absolute maximum number of jobs that will ever
- be handled in a single queue run. Based on code contributed
- by Brian Coan of the Institute for Global Communications.
- Log message when a message is dropped because it exceeds the maximum
- message size. Suggested by Leo Bicknell of Virginia Tech.
- Allow trusted users (those on a T line or in $=t) to use -bs without
- an X-Authentication-Warning: added. Suggested by Mark Thomas
- of Mark G. Thomas Consulting.
- Announce state of compile flags on -d0.1 (-d0.10 throws in the
- OS-dependent defines). The old semantic of -d0.1 to not
- run the daemon in background has been moved to -d99.100,
- and the old 52.5 flag (to avoid disconnect() from closing
- all output files) has been moved to 52.100. This makes
- things more consistent (flags below .100 don't change
- semantics) and separates out the backgrounding so that
- it doesn't happen automatically on other unrelated debugging
- flags.
- If -t is used but no addresses are found in the header, give an
- error message rather than just doing nothing. Fix from
- Motonori Nakamura.
- On systems (like SunOS) where the effective gid is not necessarily
- included in the group list returned by getgroups(), the
- `restrictmailq' option could sometimes cause an authorized
- user to not be able to use `mailq'. Fix from Charles Hannum
- of MIT.
- Allow symbolic service names for [IPC] mailers. Suggested by
- Gerry Magennis of Logica International.
- Add DontExpandCnames option to prevent $[ ... $] from expanding CNAMEs
- when running DNS. For example, if the name FTP.Foo.ORG is
- a CNAME for Cruft.Foo.ORG, then when sitting on a machine in
- the Foo.ORG domain a lookup of "FTP" returns "Cruft.Foo.ORG"
- if this option is not set, or "FTP.Foo.ORG" if it is set.
- This is technically illegal under RFC 822 and 1123, but the
- IETF is moving toward legalizing it. Note that turning on
- this option is not sufficient to guarantee that a downstream
- neighbor won't rewrite the address for you.
- Add "-m" flag to makesendmail script -- this tells you what object
- directory and Makefile it will use, but doesn't actually do
- the make.
- Do some additional checking on the contents of the qf file to try
- to detect attacks against the qf file. In particular,
- abort on any line beginning "From ", and add an "end of
- file" line -- any data after that line is prohibited.
- Always use /etc/sendmail.cf, regardless of the arbitrary vendor
- choices. This can be overridden in the Makefile by using
- either -DUSE_VENDOR_CF_PATH to get the vendor location
- (to the extent that we know it) or by defining
- _PATH_SENDMAILCF (which is a "hard override"). This allows
- sendmail 8 to have more consistent installation instructions.
- Allow macros on `K' line in config file. Suggested by Andrew Chang
- of Sun Microsystems.
- Improved symbol table hash function from Eric Wassenaar. This one
- is at least 50% faster.
- Fix problem that didn't notice that timeout on file open was a
- transient error. Fix from Larry Parmelee of Cornell
- University.
- Allow comments (lines beginning with a `#') in files read for
- classes. Suggested by Motonori Nakamura.
- Make SIGINT (usually ^C) in test mode return to the prompt instead
- of dropping out entirely. This makes testing some of the
- name server lookups easier to deal with when there are
- hung servers. From Motonori Nakamura.
- Add new ${opMode} macro that is set to the current operation mode
- (e.g., `s' for -bs, `t' for -bt, etc.). Suggested by
- Claude Marinier <MARINIER@emp.ewd.dreo.dnd.ca>.
- Add new delivery mode (Odd) that defers all map lookups to queue runs.
- Kind of like queue-only mode (Odq) except it tries to avoid
- any external service requests; for dial-on-demand hosts that
- want to minimize DNS lookups when mail is being queued. For
- this to work you will also have to make sure that gethostbyname
- of your local host name does not do a DNS lookup.
- Improved handling of "out of space" conditions from John Myers of
- Carnegie Mellon.
- Improved security for mailing to files on systems that have fchmod(2)
- support.
- Improve "cannot send message for N days" message -- now says "could
- not send for past N days". Suggested by Tom Moore of AT&T
- Global Information Solutions.
- Less misleading Subject: line on messages sent to postmaster only.
- From Motonori Nakamura.
- Avoid duplicate error messages on bad command line flags. From
- Motonori Nakamura.
- Better error message for case where ruleset 0 falls off the end
- or otherwise does not resolve to a canonical triple.
- Fix a problem that could cause multiple bounce messages if a bad
- address was sent along with a good address to an SMTP
- site where that SMTP site returned a 4yz code in response
- to the final dot of the data. Problem reported by David
- James of British Telecom.
- Add "volatile" declarations so that gcc -O2 will work. Patches
- from Alexander Dupuy of System Management ARTS.
- Delete duplicates in MX lists -- believe it or not, there are sites
- that list the same host twice in an MX list. This deletion
- only works on adjacent preferences, so an MX list that
- had A=5, B=10, A=15 would leave both As, but one that had
- A=5, A=10, B=15 would reduce to A, B. This is intentional,
- just in case there is something weird I haven't thought of.
- Suggested by Barry Shein of Software Tool & Die.
- SECURITY: .forward files cannot be symbolic links. If they are,
- a bad guy can read your private files.
- PORTABILITY FIXES:
- Solaris 2 from Rob McMahon <cudcv@csv.warwick.ac.uk>.
- System V Release 4 from Motonori Nakamura of Ritsumeikan
- University. This expands the disk size
- checking to include all (?) SVR4 configurations.
- System V Release 4 from Kimmo Suominen -- initgroups(3)
- and setrlimit(2) are both available.
- System V Release 4 from sob@sculley.ffg.com -- some versions
- apparently "have EX_OK defined in other headerfiles."
- Linux Makefile typo.
- Linux getusershell(3) is broken in Slackware 2.0 --
- from Andrew Pam of Xanadu Australia.
- More Linux tweaking from John Kennedy of California State
- University, Chico.
- Cray changes from Eric Wassenaar: ``On Cray, shorts,
- ints, and longs are all 64 bits, and all structs
- are multiples of 64 bits. This means that the
- sizeof operator returns only multiples of 8.
- This requires adaptation of code that really
- deals with 32 bit or 16 bit fields, such as IP
- addresses or nameserver fields.''
- DG/UX 5.4.3 from Mark T. Robinson <mtr@ornl.gov>. To
- get the old behavior, use -DDGUX_5_4_2.
- DG/UX hack: add _FORCE_MAIL_LOCAL_=yes environment
- variable to fix bogus /bin/mail behavior.
- Tandem NonStop-UX from Rick McCarty <mccarty@mpd.tandem.com>.
- This also cleans up some System V Release 4 compile
- problems.
- Solaris 2: sendmail.cw file should be in /etc/mail to
- match all the other configuration files. Fix
- from Glenn Barry of Emory University.
- Solaris 2.3: compile problem in conf.c. Fix from Alain
- Nissen of the University of Liege, Belgium.
- Ultrix: freespace calculation was incorrect. Fix from
- Takashi Kizu of Osaka University.
- SVR4: running in background gets a SIGTTOU because the
- emulation code doesn't realize that "getpeername"
- doesn't require reading the file. Fix from Peter
- Wemm of DIALix.
- Solaris 2.3: due to an apparent bug in the socket emulation
- library, sockets can get into a "wedged" state where
- they just return EPROTO; closing and re-opening the
- socket clears the problem. Fix from Bob Manson
- of Ohio State University.
- Hitachi 3050R & 3050RX running HI-UX/WE2: portability
- fixes from Akihiro Hashimoto ("Hash") of Chiba
- University.
- AIX changes to allow setproctitle to work from Rainer Sch鰌f
- of Zentrum f黵 Datenverarbeitung der Universit鋞
- Mainz.
- AIX changes for load average from Ed Ravin of NASA/Goddard.
- SCO Unix from Chip Rosenthal of Unicom (code was using the
- wrong statfs call).
- ANSI C fixes from Adam Glass (NetBSD project).
- Stardent Titan/ANSI C fixes from Kate Hedstrom of Rutgers
- University.
- DG-UX fixes from Bruce Nagel of Data General.
- IRIX64 updates from Mark Levinson of the University of
- Rochester Medical Center.
- Altos System V (``the first UNIX/XENIX merge the Altos
- did for their Series 1000 & Series 2000 line;
- their merged code was licensed back to AT&T and
- Microsoft and became System V release 3.2'') from
- Tim Rice <timr@crl.com>.
- OSF/1 running on Intel Paragon from Jeff A. Earickson
- <jeff@ssd.intel.com> of Intel Scalable Systems
- Division.
- Amdahl UTS System V 2.1.5 (SVr3-based) from Janet Jackson
- <janet@dialix.oz.au>.
- System V Release 4 (statvfs semantic fix) from Alain
- Durand of I.M.A.G.
- HP-UX 10.x multiprocessor load average changes from
- Scott Hutton and Jeff Sumler of Indiana University.
- Cray CSOS from Scott Bolte of Cray Computer Corporation.
- Unicos 8.0 from Douglas K. Rand of the University of North
- Dakota, Scientific Computing Center.
- Solaris 2.4 fixes from Sanjay Dani of Dani Communications.
- ConvexOS 11.0 from Christophe Wolfhugel.
- IRIX 4.0.5 from David Ashton-Reader of CADcentre.
- ISC UNIX from J. J. Bailey.
- HP-UX 9.xx on the 8xx series machines from Remy Giraud
- of Meteo France.
- HP-UX configuration from Tom Lane <tgl@sss.pgh.pa.us>.
- IRIX 5.2 and 5.3 from Kari E. Hurtta.
- FreeBSD 2.0 from Mike Hickey of Federal Data Corporation.
- Sony NEWS-OS 4.2.1R and 6.0.3 from Motonori Nakamura.
- Omron LUNA unios-b, mach from Motonori Nakamura.
- NEC EWS-UX/V 4.2 from Motonori Nakamura.
- NeXT 2.1 from Bryan Costales.
- AUX patch thanks to Mike Erwin of Apple Computer.
- HP-UX 10.0 from John Beck of Hewlett-Packard.
- Ultrix: allow -DBROKEN_RES_SEARCH=0 if you are using a
- non-DEC resolver. Suggested by Allan Johannesen.
- UnixWare 2.0 fixes from Petr Lampa of the Technical
- University of Brno (Czech Republic).
- KSR OS 1.2.2 support from Todd Miller of the University
- of Colorado.
- UX4800 support from Kazuhisa Shimizu of NEC.
- MAKEMAP: allow -d flag to allow insertion of duplicate aliases
- in type ``btree'' maps. The semantics of this are undefined
- for regular maps, but it can be useful for the user database.
- MAKEMAP: lock database file while rebuilding to avoid sendmail
- lookups while the rebuild is going on. There is a race
- condition between the open(... O_TRUNC ...) and the lock
- on the file, but it should be quite small.
- SMRSH: sendmail restricted shell added to the release. This can
- be used as an alternative to /bin/sh for the "prog" mailer,
- giving the local administrator more control over what
- programs can be run from sendmail.
- MAIL.LOCAL: add this local mailer to the tape. It is not really
- part of the release proper, and isn't fully supported; in
- particular, it does not run on System V based systems and
- never will.
- CONTRIB: a patch to rmail.c from Bill Gianopoulos of Raytheon
- to allow rmail to compile on systems that don't have
- function prototypes and systems that don't have snprintf.
- CONTRIB: add the "mailprio" scripts that will help you sort mailing
- lists by transaction delay times so that addresses that
- respond quickly get sent first. This is to prevent very
- sluggish servers from delaying other peoples' mail.
- Contributed by Tony Sanders of BSDI.
- CONTRIB: add the "bsdi.mc" file as contributed by Tony Sanders
- of BSDI. This has a lot of comments to help people out.
- CONFIG: Don't have .mc files include(../m4/cf.m4) -- instead,
- put this on the m4 command line. On GNU m4 (which
- supports the __file__ primitive) you can run m4 in an
- arbitrary directory -- use either:
- m4 ${CFDIR}/m4/cf.m4 config.mc > config.cf
- or
- m4 -I${CFDIR} m4/cf.m4 config.mc > config.cf
- On other versions of m4 that don't support __file__, you
- can use:
- m4 -D_CF_DIR_=${CFDIR}/ ${CFDIR}/m4/cf.m4 ...
- (Note the trailing slash on the _CF_DIR_ definition.)
- Old versions of m4 will default to _CF_DIR_=.. for back
- compatibility.
- CONFIG: fix mail from <> so it will properly convert to
- MAILER-DAEMON on local addresses.
- CONFIG: fix code that was supposed to catch colons in host
- names. Problem noted by John Gardiner Myers of CMU.
- CONFIG: allow use of SMTP_MAILER_MAX in nullclient configuration.
- From Paul Riddle of the University of Maryland, Baltimore
- County.
- CONFIG: Catch and reject "." as a host address.
- CONFIG: Generalize domaintable to look up all domains, not
- just unqualified ones.
- CONFIG: Delete OLD_SENDMAIL support -- as near as I can tell, it
- was never used and didn't work anyway.
- CONFIG: Set flags A, w, 5, :, /, |, and @ on the "local" mailer
- and d on all mailers in the UUCP class.
- CONFIG: Allow "user+detail" to be aliased specially: it will first
- look for an alias for "user+detail", then for "user+*", and
- finally for "user". This is intended for forwarding mail
- for system aliases such as root and postmaster to a
- centralized hub.
- CONFIG: add confEIGHT_BIT_HANDLING to set option 8 (see above).
- CONFIG: add smtp8 mailer; this has the F=8 (just-send-8) flag set.
- The F=8 flag is also set on the "relay" mailer, since
- this is expected to be another sendmail.
- CONFIG: avoid qualifying all UUCP addresses sent via SMTP with
- the name of the UUCP_RELAY -- in some cases, this is the
- wrong value (e.g., when we have local UUCP connections),
- and this can create unreplyable addresses. From Chip
- Rosenthal of Unicom.
- CONFIG: add confRECEIVED_HEADER to change the format of the
- Received: header inserted into all messages. Suggested by
- Gary Mills of the University of Manitoba.
- CONFIG: Make "notsticky" the default; use FEATURE(stickyhost)
- to get the old behavior. I did this upon observing
- that almost everyone needed this feature, and that the
- concept I was trying to make happen didn't work with
- some user agents anyway. FEATURE(notsticky) still works,
- but it is a no-op.
- CONFIG: Add LUSER_RELAY -- the host to which unrecognized user
- names are sent, rather than immediately diagnosing them
- as User Unknown.
- CONFIG: Add SMTP_MAILER_ARGS, ESMTP_MAILER_ARGS, SMTP8_MAILER_ARGS,
- and RELAY_MAILER_ARGS to set the arguments for the
- indicated mailers. All default to "IPC $h". Patch from
- Larry Parmelee of Cornell University.
- CONFIG: pop mailer needs F=n flag to avoid "annoying side effects
- on the client side" and F=P to get an appropriate
- return-path. From Kimmo Suominen.
- CONFIG: add FEATURE(local_procmail) to use the procmail program
- as the local mailer. For addresses of the form "user+detail"
- the "detail" part is passed to procmail via the -a flag.
- Contributed by Kimmo Suominen.
- CONFIG: add MAILER(procmail) to add an interface to procmail for
- use from mailertables. This lets you execute arbitrary
- procmail scripts. Contributed by Kimmo Suominen.
- CONFIG: add T= fields (MTS type) to local, smtp, and uucp mailers.
- CONFIG: add OSTYPE(ptx2) for DYNIX/ptx 2.x from Sequent. From
- Paul Southworth of CICNet Systems Support.
- CONFIG: use -a$g as default to UUCP mailers, instead of -a$f.
- This causes the null return path to be rewritten as
- MAILER-DAEMON; otherwise UUCP gets horribly confused.
- From Michael Hohmuth of Technische Universitat Dresden.
- CONFIG: Add FEATURE(bestmx_is_local) to cause any hosts that
- list us as the best possible MX record to be treated as
- though they were local (essentially, assume that they
- are included in $=w). This can cause additional DNS
- traffic, but is easier to administer if this fits your
- local model. It does not work reliably if there are
- multiple hosts that share the best MX preference.
- Code contributed by John Oleynick of Rutgers.
- CONFIG: Add FEATURE(smrsh) to use smrsh (the SendMail Restricted
- SHell) instead of /bin/sh as the program used for delivery
- to programs. If an argument is included, it is used as
- the path to smrsh; otherwise, /usr/local/etc/smrsh is
- assumed.
- CONFIG: Add LOCAL_MAILER_MAX and PROCMAILER_MAILER_MAX to limit the
- size of messages to the local and procmail mailers
- respectively. Contributed by Brad Knowles of the Defense
- Information Systems Agency.
- CONFIG: Handle leading ``phrase:'' and trailing ``;'' as comments
- (just like text outside of angle brackets) in order to
- properly deal with ``group: addr1, ... addrN;'' syntax.
- CONFIG: Require OSTYPE macro (the defaults really don't apply to
- any real systems any more) and tweak the DOMAIN macro
- so that it is less likely that users will accidentally use
- the Berkeley defaults. Also, create some generic files
- that really can be used in the real world.
- CONFIG: Add new configuration macros to set character sets for
- messages _arriving from_ various mailers: LOCAL_MAILER_CHARSET,
- SMTP_MAILER_CHARSET, and UUCP_MAILER_CHARSET.
- CONFIG: Change UUCP_MAX_SIZE to UUCP_MAILER_MAX for consistency.
- The old name will still be accepted for a while at least.
- CONFIG: Implement DECNET_RELAY as spec for host to which DECNET
- mail (.DECNET pseudo-domain or node::user) will be sent.
- As with all relays, it can be ``mailer:hostname''. Suggested
- by Scott Hutton.
- CONFIG: Add MAILER(mail11) to get DECnet support. Code contributed
- by Barb Dijker of Labyrinth Computer Services.
- CONFIG: change confCHECK_ALIASES to default to False -- it has poor
- performance for large alias files, and this confused many
- people.
- CONFIG: Add confCF_VERSION to append local information to the
- configuration version number displayed during SMTP startup.
- CONFIG: fix some.newsgroup.usenet@local.host syntax (previously it
- would only work when locally addressed. Fix from
- Edvard Tuinder of Cistron Internet Services.
- CONFIG: use ${opMode} to avoid error on .REDIRECT addresses if option
- "n" (CheckAliases) is set when rebuilding alias database.
- Based on code contributed by Claude Marinier.
- CONFIG: Allow mailertable to have values of the form
- ``error:code message''. The ``code'' is a status code
- derived from the sysexits codes -- e.g., NOHOST or UNAVAILABLE.
- Contributed by David James <dwj@agw.bt.co.uk>.
- CONFIG: add MASQUERADE_DOMAIN(domain list) to extend the list of
- sender domains that will be replaced with the masquerade name.
- These domains will not be treated as local, but if mail passes
- through with sender addresses in those domains they will be
- replaced by the masquerade name. These can also be specified
- in a file using MASQUERADE_DOMAIN_FILE(filename).
- CONFIG: add FEATURE(masquerade_envelope) to masquerade the envelope
- as well as the header. Substantial improvements to this
- code were contributed by Per Hedeland.
- CONFIG: add MAILER(phquery) to define a new "ph" mailer; this can be
- accessed from a mailertable to do CCSO ph lookups. Contributed
- by Kimmo Suominen.
- CONFIG: add MAILER(cyrus) to define a new Cyrus mailer; this can be
- used to define cyrus and cyrusbb mailers (for IMAP support).
- Contributed by John Gardiner Myers of Carnegie Mellon.
- CONFIG: add confUUCP_MAILER to select default mailer to use for
- UUCP addressing. Suggested by Tom Moore of AT&T GIS.
- NEW FILES:
- cf/cf/cs-hpux10.mc
- cf/cf/cs-solaris2.mc
- cf/cf/cyrusproto.mc
- cf/cf/generic-bsd4.4.mc
- cf/cf/generic-hpux10.mc
- cf/cf/generic-hpux9.mc
- cf/cf/generic-osf1.mc
- cf/cf/generic-solaris2.mc
- cf/cf/generic-sunos4.1.mc
- cf/cf/generic-ultrix4.mc
- cf/cf/huginn.cs.mc
- cf/domain/berkeley-only.m4
- cf/domain/generic.m4
- cf/feature/bestmx_is_local.m4
- cf/feature/local_procmail.m4
- cf/feature/masquerade_envelope.m4
- cf/feature/smrsh.m4
- cf/feature/stickyhost.m4
- cf/feature/use_ct_file.m4
- cf/m4/cfhead.m4
- cf/mailer/cyrus.m4
- cf/mailer/mail11.m4
- cf/mailer/phquery.m4
- cf/mailer/procmail.m4
- cf/ostype/amdahl-uts.m4
- cf/ostype/bsdi2.0.m4
- cf/ostype/hpux10.m4
- cf/ostype/irix5.m4
- cf/ostype/isc4.1.m4
- cf/ostype/ptx2.m4
- cf/ostype/unknown.m4
- contrib/bsdi.mc
- contrib/mailprio
- contrib/rmail.oldsys.patch
- mail.local/mail.local.0
- makemap/makemap.0
- smrsh/README
- smrsh/smrsh.0
- smrsh/smrsh.8
- smrsh/smrsh.c
- src/Makefiles/Makefile.CSOS
- src/Makefiles/Makefile.EWS-UX_V
- src/Makefiles/Makefile.HP-UX.10
- src/Makefiles/Makefile.IRIX.5.x
- src/Makefiles/Makefile.IRIX64
- src/Makefiles/Makefile.ISC
- src/Makefiles/Makefile.KSR
- src/Makefiles/Makefile.NEWS-OS.4.x
- src/Makefiles/Makefile.NEWS-OS.6.x
- src/Makefiles/Makefile.NEXTSTEP
- src/Makefiles/Makefile.NonStop-UX
- src/Makefiles/Makefile.Paragon
- src/Makefiles/Makefile.SCO.3.2v4.2
- src/Makefiles/Makefile.SunOS.5.3
- src/Makefiles/Makefile.SunOS.5.4
- src/Makefiles/Makefile.SunOS.5.5
- src/Makefiles/Makefile.UNIX_SV.4.x.i386
- src/Makefiles/Makefile.uts.systemV
- src/Makefiles/Makefile.UX4800
- src/aliases.0
- src/mailq.0
- src/mime.c
- src/newaliases.0
- src/sendmail.0
- test/t_seteuid.c
- RENAMED FILES:
- cf/cf/alpha.mc => cf/cf/s2k-osf1.mc
- cf/cf/chez.mc => cf/cf/chez.cs.mc
- cf/cf/hpux-cs-exposed.mc => cf/cf/cs-hpux9.mc
- cf/cf/osf1-cs-exposed.mc => cf/cf/cs-osf1.mc
- cf/cf/s2k.mc => cf/cf/s2k-ultrix4.mc
- cf/cf/sunos4.1-cs-exposed.mc => cf/cf/cs-sunos4.1.mc
- cf/cf/ultrix4.1-cs-exposed.mc => cf/cf/cs-ultrix4.mc
- cf/cf/vangogh.mc => cf/cf/vangogh.cs.mc
- cf/domain/Berkeley.m4 => cf/domain/Berkeley.EDU.m4
- cf/domain/cs-exposed.m4 => cf/domain/CS.Berkeley.EDU.m4
- cf/domain/eecs-hidden.m4 => cf/domain/EECS.Berkeley.EDU.m4
- cf/domain/s2k.m4 => cf/domain/S2K.Berkeley.EDU.m4
- cf/ostype/hpux.m4 => cf/ostype/hpux9.m4
- cf/ostype/irix.m4 => cf/ostype/irix4.m4
- cf/ostype/ultrix4.1.m4 => cf/ostype/ultrix4.m4
- src/Makefile.* => src/Makefiles/Makefile.*
- src/Makefile.AUX => src/Makefiles/Makefile.A-UX
- src/Makefile.BSDI => src/Makefiles/Makefile.BSD-OS
- src/Makefile.DGUX => src/Makefiles/Makefile.dgux
- src/Makefile.RISCos => src/Makefiles/Makefile.UMIPS
- src/Makefile.SunOS.4.0.3 => src/Makefiles/Makefile.SunOS.4.0
- OBSOLETED FILES:
- cf/cf/cogsci.mc
- cf/cf/cs-exposed.mc
- cf/cf/cs-hidden.mc
- cf/cf/hpux-cs-hidden.mc
- cf/cf/knecht.mc
- cf/cf/osf1-cs-hidden.mc
- cf/cf/sunos3.5-cs-exposed.mc
- cf/cf/sunos3.5-cs-hidden.mc
- cf/cf/sunos4.1-cs-hidden.mc
- cf/cf/ultrix4.1-cs-hidden.mc
- cf/domain/cs-hidden.m4
- contrib/rcpt-streaming
- src/Makefiles/Makefile.SunOS.5.x
- 8.6.13/8.6.12 1996/01/25
- SECURITY: In some cases it was still possible for an attacker to
- insert newlines into a queue file, thus allowing access to
- any user (except root).
- CONFIG: no changes -- it is not a bug that the configuration
- version number is unchanged.
- 8.6.12/8.6.12 1995/03/28
- Fix to IDENT code (it was getting the size of the reply buffer
- too small, so nothing was ever accepted). Fix from several
- people, including Allan Johannesen, Shane Castle of the
- Boulder County Information Services, and Jeff Smith of
- Warwick University (all arrived within a few hours of
- each other!).
- Fix a problem that could cause large jobs to run out of
- file descriptors on systems that use vfork() rather
- than fork().
- 8.6.11/8.6.11 1995/03/08
- The ``possible attack'' message would be logged more often
- than necessary if you are using Pine as a user agent.
- The wrong host would be reported in the ``possible attack''
- message when attempted from IDENT.
- In some cases the syslog buffer could be overflowed when
- reporting the ``possible attack'' message. This can
- cause denial of service attacks. Truncate the message
- to 80 characters to prevent this problem.
- When reading the IDENT response a loop is needed around the
- read from the network to ensure that you don't get
- partial lines.
- Password entries without any shell listed (that is, a null
- shell) wouldn't match as "ok". Problem noted by
- Rob McMahon.
- When running BIND 4.9.x a problem could occur because the
- _res.options field is initialized differently than it
- was historically -- this requires that sendmail call
- res_init before it tweaks any bits.
- Fix an incompatibility in openxscript() between the file open mode
- and the stdio mode passed to fdopen. This caused UnixWare
- 2.0 to have conniptions. Fix from Martin Sohnius of
- Novell Labs Europe.
- Fix problem with static linking of local getopt routine when
- using GNU's ld command. Fix from John Kennedy of
- Cal State Chico.
- It was possible to turn off privacy flags. Problem noted by
- *Hobbit*.
- Be more paranoid about writing files. Suggestions by *Hobbit*
- and Liudvikas Bukys.
- MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular)
- from Spider Boardman.
- CONFIG: No changes (version number only, to keep it in sync
- with the binaries).
- 8.6.10/8.6.10 1995/02/10
- SECURITY: Diagnose bogus values to some command line flags that
- could allow trash to get into headers and qf files.
- Validate the name of the user returned by the IDENT protocol.
- Some systems that really dislike IDENT send intentionally
- bogus information. Problem pointed out by Michael Bushnell
- of the Free Software Foundation. Has some security
- implications.
- Fix a problem causing error messages about DNS problems when
- the host name contained a percent sign to act oddly
- because it was passed as a printf-style format string.
- In some cases this could cause core dumps.
- Avoid possible buffer overrun in returntosender() if error
- message is quite long. From Fletcher Mattox of the
- University of Texas.
- Fix a problem that would silently drop "too many hops" error
- messages if and only if you were sending to an alias.
- From Jon Giltner of the University of Colorado and
- Dan Harton of Oak Ridge National Laboratory.
- Fix a bug that caused core dumps on some systems if -d11.2 was
- set and e->e_message was null. Fix from Bruce Nagel of
- Data General.
- Fix problem that can still cause df files to be left around
- after "hop count exceeded" messages. Fix from Andrew
- Chang and Shau-Ping Lo of SunSoft.
- Fix a problem that can cause buffer overflows on very long
- user names (as might occur if you piped to a program
- with a lot of arguments).
- Avoid returning an error and re-queueing if the host signature
- is null; this can occur on addresses like ``user@.''.
- Problem noted by Wesley Craig and the University of
- Michigan.
- Avoid possible calls to malloc(0) if MCI caching is turned
- off. Bug fix from Pierre David of the Laboratoire
- Parallelisme, Reseaux, Systemes et Modelisation (PRiSM),
- Universite de Versailles - St Quentin, and Jacky
- Thibault.
- Make a local copy of the line being sent via senttolist() -- in
- some cases, buffers could get trashed by map lookups
- causing it to do unexpected things. This also simplifies
- some of the map code.
- CONFIG: No changes (version number only, to keep it in sync
- with the binaries).
- 8.6.9/8.6.9 1994/04/19
- Do all mail delivery completely disconnected from any terminal.
- This provides consistency with daemon delivery and
- may have some security implications.
- Make sure that malloc doesn't get called with zero size,
- since that fails on some systems. Reported by Ed
- Hill of the University of Iowa.
- Fix multi-line values for $e (SMTP greeting message). Reported
- by Mike O'Connor of Ford Motor Company.
- Avoid syserr if no NIS domain name is defined, but the map it
- is trying to open is optional. From Win Bent of USC.
- Changes for picky compilers from Ed Gould of Digital Equipment.
- Hesiod support for UDB from Todd Miller of the University of
- Colorado. Use "hesiod" as the service name in the U
- option.
- Fix a problem that failed to set the "authentic" host name (that
- is, the one derived from the socket info) if you called
- sendmail -bs from inetd. Based on code contributed by
- Todd Miller (this problem was also reported by Guy Helmer
- of Dakota State University). This also fixes a related
- problem reported by Liudvikas Bukys of the University of
- Rochester.
- Parameterize "nroff -h" in all the Makefiles so people with
- variant versions can use them easily. Suggested by
- Peter Collinson of Hillside Systems.
- SMTP "MAIL" commands with multiple ESMTP parameters required two
- spaces between parameters instead of one. Reported by
- Valdis Kletnieks of Virginia Tech.
- Reduce the number of system calls during message collection by
- using global timeouts around the collect() loop. This
- code was contributed by Eric Wassenaar.
- If the initial hostname name gathering results in a name
- without a dot (usually caused by NIS misconfiguration)
- and BIND is compiled in, directly access DNS to get
- the canonical name. This should make life easier for
- Solaris systems. If it still can't be resolved, and
- if the name server is listed as "required", try again
- in 30 seconds. If that also fails, exit immediately to
- avoid bogus "config error: mail loops back to myself"
- messages.
- Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error
- message to explain how much space was available and
- sound a bit less threatening. Suggested by Stan Janet
- of the National Institute of Standards and Technology.
- If mail is delivered to an alias that has an owner, deliver any
- requested return-receipt immediately, and strip the
- Return-Receipt-To: header from the subsequent message.
- This prevents a certain class of denial of service
- attack, arguably gives more reasonable semantics, and
- moves things more towards what will probably become a
- network standard. Suggested by Christopher Davis of
- Kapor Enterprises.
- Add a "noreceipts" privacy flag to turn off all return receipts
- without recompiling.
- Avoid printing ESMTP parameters as part of the error message
- if there are errors during parsing. This change is
- purely cosmetic.
- Avoid sending out error messages during the collect phase of
- SMTP; there is an MVS mailer from UCLA that gets
- confused by this. Of course, I think it's their bug....
- Check for the $j macro getting undefined, losing a dot, or getting
- lost from $=w in the daemon before accepting a connection;
- if it is, it dumps state, prints a LOG_ALERT message,
- and drops core for debugging. This is an attempt to
- track down a bug that I thought was long since gone.
- If you see this, please forward the log fragment to
- sendmail@sendmail.ORG.
- Change OLD_NEWDB from a #ifdef to a #if so it can be turned off
- with -DOLD_NEWDB=0 on the command line. From Christophe
- Wolfhugel.
- Instead of trying to truncate the listen queue for the server
- SMTP port when the load average is too high, just close
- the port completely and reopen it later as needed.
- This ensures that the other end gets a quick "connection
- refused" response, and that the connection can be
- recovered later. In particular, some socket emulations
- seem to get confused if you tweak the listen queue
- size around and can never start listening to connections
- again. The down side is that someone could start up
- another daemon process in the interim, so you could
- have multiple daemons all not listening to connections;
- this could in turn cause the sendmail.pid file to be
- incorrect. A better approach might be to accept the
- connection and give a 421 code, but that could break
- other mailers in mysterious ways and have paging behavior
- implications.
- Fix a glitch in TCP-level debugging that caused flag 16.101 to
- set debugging on the wrong socket. From Eric Wassenaar.
- When creating a df* temporary file, be sure you truncate any
- existing data in the file -- otherwise system crashes
- and the like could result in extra data being sent.
- DOC: Replace the CHANGES-R5-R8 readme file with a paper in the
- doc directory. This includes some additional
- information.
- CONFIG: change UUCP rules to never add $U! or $k! on the front
- of recipient envelope addresses. This should have been
- handled by the $&h trick, but broke if people were
- mixing domainized and UUCP addresses. They should
- probably have converted all the way over to uucp-uudom
- instead of uucp-{new,old}, but the failure mode was to
- loop the mail, which was bad news.
- Portability fixes:
- Newer BSDI systems (several people).
- Older BSDI systems from Christophe Wolfhugel.
- Intergraph CLIX, from Paul Southworth of CICNet.
- UnixWare, from Evan Champion.
- NetBSD from Adam Glass.
- Solaris from Quentin Campbell of the University of
- Newcastle upon Tyne.
- IRIX from Dean Cookson and Bill Driscoll of Mitre
- Corporation.
- NCR 3000 from Kevin Darcy of Chrysler Financial Corporation.
- SunOS (it has setsid() and setvbuf() calls) from
- Jonathan Kamens of OpenVision Technologies.
- HP-UX from Tor Lillqvist.
- New Files:
- src/Makefile.CLIX
- src/Makefile.NCR3000
- doc/changes/Makefile
- doc/changes/changes.me
- doc/changes/changes.ps
- 8.6.8/8.6.6 1994/03/21
- SECURITY: it was possible to read any file as root using the
- E (error message) option. Reported by Richard Jones;
- fixed by Michael Corrigan and Christophe Wolfhugel.
- 8.6.7/8.6.6 1994/03/14
- SECURITY: it was possible to get root access by using weird
- values to the -d flag. Thanks to Alain Durand of
- INRIA for forwarding me the notice from the bugtraq
- list.
- 8.6.6/8.6.6 1994/03/13
- SECURITY: the ability to give files away on System V-based
- systems proved dangerous -- don't run as the owner
- of a :include: file on a system that allows giveaways.
- Unfortunately, this also applies to determining a
- valid shell.
- IMPORTANT: Previous versions weren't expiring old connections
- in the connection cache for a long time under some
- circumstances. This could result in resource exhaustion,
- both at your end and at the other end. This checks the
- connections for timeouts much more frequently. From
- Doug Anderson of NCSC.
- Fix a glitch that snuck in that caused programs to be run as
- the sender instead of the recipient if the mail was
- from a local user to another local user. From
- Motonori Nakamura of Kyoto University.
- Fix "wildcard" on /etc/shells matching -- instead of looking
- for "*", look for "/SENDMAIL/ANY/SHELL/". From
- Bryan Costales of ICSI.
- Change the method used to declare the "statfs" availability;
- instead of HASSTATFS and/or HASUSTAT with a ton of
- tweaking in conf.c, there is a single #define called
- SFS_TYPE which takes on one of six values (SFS_NONE
- for no statfs availability, SFS_USTAT for the ustat(2)
- syscall, SFS_4ARGS for a four argument statfs(2) call,
- and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument
- statfs(2) call with the declarations in <sys/vfs.h>,
- <sys/mount.h>, or <sys/statfs.h> respectively).
- Fix glitch in NetInfo support that could return garbage if
- there was no "/locations/sendmail" property. From
- David Meyer of the University of Virginia.
- Change HASFLOCK from defined/not-defined to a 0/1 definition
- to allow Linux to turn it off even though it is a
- BSD-like system.
- Allow setting of "ident" timeout to zero to turn off the ident
- protocol entirely.
- Make 7-bit stripping local to a connection (instead of to a
- mailer); this allows you to specify that SMTP is a
- 7-bit channel, but revert to 8-bit should it advertise
- that it supports 8BITMIME. You still have to specify
- mailer flag 7 to get this stripping at all.
- Improve makesendmail script so it handles more cases automatically.
- Tighten up restrictions on taking ownership of :include: files
- to avoid problems on systems that allow you to give away
- files.
- Fix a problem that made it impossible to rebuild the alias
- file if it was on a read-only file system. From
- Harry Edmon of the University of Washington.
- Improve MX randomization function. From John Gardiner Myers
- of CMU.
- Fix a minor glitch causing a bogus message to be printed (used
- %s instead of %d in a printf string for the line number)
- when a bad queue file was read. From Harry Edmon.
- Allow $s to remain NULL on locally generated mail. I'm not
- sure this is necessary, but a lot of people have complained
- about it, and there is a legitimate question as to whether
- "localhost" is legal as an 822-style domain.
- Fix a problem with very short line lengths (mailer L= flag) in
- headers. This causes a leading space to be added onto
- continuation lines (including in the body!), and also
- tries to wrap headers containing addresses (From:, To:,
- etc) intelligently at the shorter line lengths. Problem
- Reported by Lars-Johan Liman of SUNET Operations Center.
- Log the real user name when logging syserrs, since these can have
- security implications. Suggested by several people.
- Fix address logging of cached connections -- it used to always
- log the numeric address as zero. This is a somewhat
- bogus implementation in that it does an extra system
- call, but it should be an inexpensive one. Fix from
- Motonori Nakamura.
- Tighten up handling of short syslog buffers even more -- there
- were cases where the outgoing relay= name was too long
- to share a line with delay= and mailer= logging.
- Limit the overhead on split envelopes to one open file descriptor
- per envelope -- previously the overhead was three
- descriptors. This was in response to a problem reported
- by P{r (Pell) Emanuelsson.
- Fixes to better handle the case of unexpected connection closes;
- this redirects the output to the transcript so the info
- is not lost. From Eric Wassenaar.
- Fix potential string overrun if you macro evaluate a string that
- has a naked $ at the end. Problem noted by James Matheson
- <jmrm@eng.cam.ac.uk>.
- Make default error number on $#error messages 553 (``Requested
- action not taken: mailbox name not allowed'') instead of
- 501 (``Syntax error in parameters or arguments'') to
- avoid bogus "protocol error" messages.
- Strip off any existing trailing dot on names during $[ ... $]
- lookup. This prevents it from ending up with two dots
- on the end of dot terminated names. From Wesley Craig
- of the University of Michigan and Bryan Costales of ICSI.
- Clean up file class reading so that the debugging information is
- more informative. It hadn't been using setclass, so you
- didn't see the class items being added.
- Avoid core dump if you are running a version of sendmail where
- NIS is compiled in, and you specify an NIS map, but
- NIS is not running. Fix from John Oleynick of
- Rutgers.
- Diagnose bizarre case where res_search returns a failure value,
- but sets h_errno to a success value.
- Make sure that "too many hops" messages are considered important
- enough to send an error to the Postmaster (that is, the
- address specified in the P option). This fix should
- help problems that cause the df file to be left around
- sometimes -- unfortunately, I can't seem to reproduce
- the problem myself.
- Avoid core dump (null pointer reference) on EXPN command; this
- only occurred if your log level was set to 10 or higher
- and the target account was an alias or had a .forward file.
- Problem noted by Janne Himanka.
- Avoid "denial of service" attacks by someone who is flooding your
- SMTP port with bad commands by shutting the connection
- after 25 bad commands are issued. From Kyle Jones of
- UUNET.
- Fix core dump on error messages with very long "to" buffers;
- fmtmsg overflows the message buffer. Fixed by trimming
- the to address to 203 characters. Problem reported by
- John Oleynick.
- Fix configuration for HASFLOCK -- there were some spots where
- a #ifndef was incorrectly #ifdef. Pointed out by
- George Baltz of the University of Maryland.
- Fix a typo in savemail() that could cause the error message To:
- lists to be incorrect in some places. From Motonori
- Nakamura.
- Fix a glitch that can cause duplicate error messages on split
- envelopes where an address on one of the lists has a
- name server failure. Fix from Voradesh Yenbut of the
- University of Washington.
- Fix possible bogus pointer reference on ESMTP parameters that
- don't have an ``=value'' part.
- CNAME loops caused an error message to be generated, but also
- re-queued the message. Changed to just re-queue the
- message (it's really hard to just bounce it because
- of the weird way the name server works in the presence
- of CNAME loops). Problem noted by James M.R.Matheson
- of Cambridge University.
- Avoid giving ``warning: foo owned process doing -bs'' messages
- if they use ``MAIL FROM:<foo>'' where foo is their true
- user name. Suggested by Andreas Stolcke of ICSI.
- Change the NAMED_BIND compile flag to be a 0/1 flag so you can
- override it easily in the Makefile -- that is, you can
- turn it off using -DNAMED_BIND=0.
- If a gethostbyname(...) of an address with a trailing dot fails,
- try it without the trailing dot. This is because if
- you have a version of gethostbyname() that falls back
- to NIS or the /etc/hosts file it will fail to find
- perfectly reasonable names that just don't happen to
- be dot terminated in the hosts file. You don't want to
- strip the dot first though because we're trying to ensure
- that country names that match one of your subdomains get
- a chance.
- PRALIASES: fix bogus output on non-null-terminated strings.
- From Bill Gianopoulos of Raytheon.
- CONFIG: Avoid rewriting anything that matches $w to be $j.
- This was in code intended to only catch the self-literal
- address (that is, [1.2.3.4], where 1.2.3.4 is your
- IP address), but the code was broken. However, it will
- still do this if $M is defined; this is necessary to
- get client configurations to work (sigh). Note that this
- means that $M overrides :mailname entries in the user
- database! Problem noted by Paul Southworth.
- CONFIG: Fix definition of Solaris help file location. From
- Steve Cliffe <steve@gorgon.cs.uow.edu.au>.
- CONFIG: Fix bug that broke news.group.USENET mappings.
- CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX,
- and USENET_MAILER_MAX to tweak the maximum message
- size for various mailers.
- CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0]
- instead of assuming that it is "inews" for consistency
- with other mailers. From Michael Corrigan of UC San Diego.
- CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB,
- qualify the address in the SMTP envelope as user@{relay|hub}
- instead of user@$j. From Bill Wisner of The Well.
- CONFIG: Fix route-addr syntax in nullrelay configuration set.
- CONFIG: Don't turn off case mapping of user names in the local
- mailer for IRIX. This was different than most every other
- system.
- CONFIG: Avoid infinite loops on certainly list:; syntaxes in
- envelope. Noted by Thierry Besancon
- <besancon@excalibur.ens.fr>.
- CONFIG: Don't include -z by default on uux line -- most systems
- don't want it set by default. Pointed out by Philippe
- Michel of Thomson CSF.
- CONFIG: Fix some bugs with mailertables -- for example, if your
- host name was foo.bar.ray.com and you matched against
- ".ray.com", the old implementation bound %1 to "bar"
- instead of "foo.bar". Also, allow "." in the mailertable
- to match anything -- essentially, take over SMART_HOST.
- This also moves matching of explicit local host names
- before the mailertable so they don't have to be special
- cased in the mailertable data. Reported by Bill
- Gianopoulos of Raytheon; the fix for the %1 binding
- problem was contributed by Nicholas Comanos of the
- University of Sydney.
- CONFIG: Don't include "root" in class $=L (users to deliver
- locally, even if a hub or relay exists) by default.
- This is because of the known bug where definition of
- both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore
- both and deliver into the local mailbox.
- CONFIG: Move up bitdomain and uudomain handling so that they
- are done before .UUCP class matching; uudomain was
- reported as ineffective before. This also frees up
- diversion 8 for future use. Problem reported by Kimmo
- Suominen.
- CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4])
- into host names. As pointed out by Jonathan Kamens,
- these are often used because either the forward or reverse
- mapping is broken; this translation makes it broken again.
- DOC: Clarify $@ and $: in the Install & Op Guide. From Kimmo
- Suominen.
- Portability fixes:
- Unicos from David L. Kensiski of Sterling Software.
- DomainOS from Don Lewis of Silicon Systems.
- GNU m4 1.0.3 from Karst Koymans of Utrecht University.
- Convex from Kimmo Suominen <kim@tac.nyc.ny.us>.
- NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>.
- BSD/386 from Tony Sanders of BSDI.
- Apollo from Eric Wassenaar.
- DGUX from Doug Anderson.
- Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent.
- NEW FILES:
- src/Makefile.DomainOS
- src/Makefile.PTX
- src/Makefile.SunOS.5.1
- src/Makefile.SunOS.5.2
- src/Makefile.SunOS.5.x
- src/mailq.1
- cf/ostype/domainos.m4
- doc/op/Makefile
- doc/intro/Makefile
- doc/usenix/Makefile
- 8.6.5/8.6.5 1994/01/13
- Security fix: /.forward could be owned by anyone (the test
- to allow root to own any file was backwards). From
- Bob Campbell at U.C. Berkeley.
- Security fix: group ids were not completely set when programs
- were invoked. This caused programs to have group
- permissions they should not have had (usually group
- daemon instead of their own group). In particular,
- Perl scripts would refuse to run.
- Security: check to make sure files that are written are not
- symbolic links (at least under some circumstances).
- Although this does not respond to a specific known
- attack, it's just a good idea. Suggested by
- Christian Wettergren.
- Security fix: if a user had an NFS mounted home directory on
- a system with a restricted shell listed in their
- /etc/passwd entry, they could still execute any
- program by putting that in their .forward file.
- This fix prevents that by insisting that their shell
- appear in /etc/shells before allowing a .forward to
- execute a program or write a file. You can disable
- this by putting "*" in /etc/shells. It also won't
- permit world-writable :include: files to reference
- programs or files (there's no way to disable this).
- These behaviors are only one level deep -- for
- example, it is legal for a world-writable :include:
- file to reference an alias that writes a file, on
- the assumption that the alias file is well controlled.
- Security fix: root was not treated suspiciously enough when
- looking into subdirectories. This would potentially
- allow a cracker to examine files that were publicly
- readable but in a non-publicly searchable directory.
- Fix a problem that causes an error on QUIT on a cached
- connection to create problems on the current job.
- These are typically unrelated, so errors occur in
- the wrong place.
- Reset CurrentLA in sendall() -- this makes sendmail queue
- runs more responsive to load average, and fixes a
- problem that ignored the load average in locally
- generated mail. From Eric Wassenaar.
- Fix possible core dump on aliases with null LHS. From
- John Orthoefer of BB&N.
- Revert to using flock() whenever possible -- there are just
- too many bugs in fcntl() locking, particularly over
- NFS, that cause sendmail to fail in perverse ways.
- Fix a bug that causes the connection cache to get confused
- when sending error messages. This resulted in
- "unexpected close" messages. It should fix itself
- on the following queue run. Problem noted by
- Liudvikas Bukys of the University of Rochester.
- Include $k in $=k as documented in the Install & Op Guide.
- This seems odd, but it was documented.... From
- Michael Corrigan of UCSD.
- Fix problem that caused :include:s from alias files to be
- forced to be owned by root instead of daemon
- (actually DefUid). From Tim Irvin.
- Diagnose unrecognized I option values -- from Mortin Forssen
- of the Chalmers University of Technology.
- Make "error" mailer work consistently when there is no error
- code associated with it -- previously it returned OK
- even though there was a real problem. Now it assumes
- EX_UNAVAILABLE.
- Fix bug that caused the last header line of messages that had
- no body and which were terminated with EOF instead of
- "." to be discarded. Problem noted by Liudvikas Bukys.
- Fix core dump on SMTP mail to programs that failed -- it tried
- to go to a "next MX host" when none existed, causing
- a core dump. From der Mouse at McGill University.
- Change IDENTPROTO from a defined/not defined to a 0/1 switch;
- this makes it easier to turn it off (using
- -DIDENTPROTO=0 in the Makefile). From der Mouse.
- Fix YP_MASTER_NAME store to use the unupdated result of
- gethostname() (instead of myhostname(), which tries
- to fully qualify the name) to be consistent with
- SunOS. If your hostname is unqualified, this fixes
- transfers to slave servers. Bug noted by Keith
- McMillan of Ameritech Services, Inc.
- Fix Ultrix problem: gethostbyname() can return a very large
- (> 500) h_length field, which causes the sockaddr
- to be trashed. Use the size of the sockaddr instead.
- Fix from Bob Manson of Ohio State.
- Don't assume "-a." on host lookups if NAMED_BIND is not
- defined -- this confuses gethostbyname on hosts
- file lookups, which doesn't understand the trailing
- dot convention.
- Log SMTP server subprocesses that die with a signal instead
- of from a clean exit.
- If you don't have option "I" set, don't assume that a DNS
- "host unknown" message is authoritative -- it
- might still be found in /etc/hosts.
- Fix a problem that would cause Deferred: messages to be sent
- as the subject of an error message, even though the
- actual cause of a message was more severe than that.
- Problem noted by Chris Seabrook of OSSI.
- Fix race condition in DBM alias file locking. From Kyle
- Jones of UUNET.
- Limit delivery syslog line length to avoid bugs in some
- versions of syslog(3). This adds a new compile time
- variable SYSLOG_BUFSIZE. From Jay Plett of Princeton
- University, which is in turn derived from IDA.
- Fix quotes inside of comments in addresses -- previously
- it insisted that they be balanced, but the 822 spec
- says that they should be ignored.
- Dump open file state to syslog upon receiving SIGUSR1 (for
- debugging). This also evaluates ruleset 89, if set
- (with the null input), and logs the result. This
- should be used sparingly, since the rewrite process
- is not reentrant.
- Change -qI, -qR, and -qS flags to be case-insensitive as
- documented in the Bat Book.
- If the mailer returned EX_IOERR or EX_OSERR, sendmail did not
- return an error message and did not requeue the message.
- Fix based on code from Roland Dirlewanger of
- Reseau Regional Aquarel, Bordeaux, France.
- Fix a problem that caused a seg fault if you got a 421 error
- code during some parts of connection initialization.
- I've only seen this when talking to buggy mailers on
- the other end, but it shouldn't give a seg fault in
- any case. From Amir Plivatsky.
- Fix core dump caused by a ruleset call that returns null.
- Fix from Bryan Costales of ICSI.
- Full-Name: field was being ignored. Fix from Motonori Nakamura
- of Kyoto University.
- Fix a possible problem with very long input lines in setproctitle.
- From P{r Emanuelsson.
- Avoid putting "This is a warning message" out on return receipts.
- Suggested by Douglas Anderson.
- Detect loops caused by recursive ruleset calls. Suggested by
- Bryan Costales.
- Initialize non-alias maps during alias rebuilds -- they may be
- needed for parsing. Problem noted by Douglas Anderson.
- Log sender address even if no message was collected in SMTP
- (e.g., if all RCPTs failed). Suggested by Motonori
- Nakamura.
- Don't reflect the owner-list contents into the envelope sender
- address if the value contains ", :, /, or | (to avoid
- illegal addresses appearing there).
- Efficiency hack for toktype macro -- from Craig Partridge of
- BB&N.
- Clean up DNS error printing so that a host name is always
- included.
- Remember to set $i during queue runs. Reported by Stephen
- Campbell of Dartmouth University.
- If the environment variable HOSTALIASES is set, use it during
- canonification as the name of a file with per-user host
- translations so that headers are properly mapped. Reported
- by Anne Bennett of Concordia University.
- Avoid printing misleading error message if SMTP mailer (not
- using [IPC]) should die on a core dump.
- Avoid incorrect diagnosis of "file 1 closed" when it is caused
- by the other end closing the connection. From
- Dave Morrison of Oracle.
- Improve several of the error messages printed by "mailq"
- to include a host name or other useful information.
- Add NetInfo preliminary support for NeXT systems. From Vince
- DeMarco.
- Fix a glitch that sometimes caused :include:s that pointed to
- NFS filesystems that were down to give an "aliasing/
- forwarding loop broken" message instead of queueing
- the message for retry. Noted by William C Fenner of
- the NRL Connection Machine Facility.
- Fix a problem that could cause a core dump if the input sequence
- had (or somehow acquired) a 231 character.
- Make sure that route-addrs always have <angle brackets> around
- them in non-SMTP envelopes (SMTP envelopes already do
- this properly).
- Avoid weird headers on unbalanced punctuation of the form:
- ``Joe User <user)'' -- this caused reference to the
- null macro. Fix from Rick McCarty of IO.COM.
- Fix a problem that caused an alias "user: user@local.host" to
- not have the QNOTREMOTE bit set; this caused configs
- to act as if FEATURE(notsticky) was defined even when
- it was not. The effect of the problem was to make it
- very hard to to set up satellite sites that had a few
- local accounts, with everything else forwarded to a
- corporate hub. Reported by Detlef Drewanz of the
- University of Rostock and Mark Frost of NCD.
- Change queuing to not call rulesets 3, {1 or 2}, 4 on header
- addresses. This is more efficient (fewer name server
- calls) and fixes certain unusual configurations, such
- as those that have ruleset 4 do something that is
- non-idempotent unless a mailer-specific ruleset did
- something else. Problem reported by Brian J. Coan
- of the Institute for Global Communications.
- Fix the "obsolete argument" routine in main to better understand
- new arguments. For example, if you used ``sendmail
- -C config -v -q'' it would choke on the -q because
- the -C would stop looking for old-format arguments.
- Fix the code that was intended to allow two users to forward their
- mail to the same program and have them appear unique.
- Portability fixes for:
- SCO UNIX from Murray Kucherawy.
- SCO Open Server 3.2v4 from Philippe Brand.
- System V Release 4 from Rick Ellis and others.
- OSF/1 from Steve Campbell.
- DG/UX from Ben Mesander of the USGS and Bryan Curnutt
- of Stoner Associates.
- Motorola SysV88 from Kevin Johnson of Motorola.
- Solaris 2.3 from Casper H.S. Dik of the University
- of Amsterdam and John Caruso of University
- of Maryland.
- FreeBSD from Ollivier Robert.
- NetBSD from Adam Glass.
- TitanOS from Kate Hedstrom of Rutgers University.
- Irix from Bryan Curnutt.
- Dynix from Jim Davis of the University of Arizona.
- RISC/os.
- Linux from John Kennedy of California State University
- at Chico.
- Solaris 2.x from Tony Boner of the U.S. Air Force.
- NEXTSTEP 3.x from Vince DeMarco.
- HP-UX from various people. NOTA BENE: the location
- of the config file has moved to /usr/lib
- to match the HP-UX version of sendmail.
- CONFIG: Don't do any recipient rewriting on relay mailer;
- since this is intended only for internal use, the
- usual RFC 821/822/1123 rules can be relaxed. The
- main point of this is to avoid munging (ugh) UUCP
- addresses when relaying internally.
- CONFIG: fix typo in mailer/uucp.m4 that mutilates list:;
- syntax addresses delivered via UUCP. Solution
- provided by Peter Wemm.
- CONFIG: fix thumb-fumble in default UUCP relaying in ruleset
- zero; it caused double @ signs in addresses. From
- Irving Reid of the University of Toronto.
- CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1
- from Markku Toijala of ICL Personal Systems Oy.
- CONFIG: Add trailing "." on pseudo-domains for consistency;
- this fixes a problem (noted by Al Whaley of Sunnyside)
- that made it hard to recognize your own pseudodomain
- names.
- CONFIG: catch "@host" syntax errors (i.e., null local-parts)
- rather than letting them get "local configuration
- error"s. Problem noted by John Gardiner Myers.
- CONFIG: add uucp-uudom mailer variant, based on code posted
- by Spider Boardman <spider@Orb.Nashua.NH.US>; this
- has uucp-dom semantics but old UUCP syntax. This
- also permits "uucp-old" as an alias for "uucp" and
- "uucp-new" as a synonym for "suucp" for consistency.
- CONFIG: add POP mailer support (from Kimmo Suominen
- <kim@grendel.lut.fi>).
- CONFIG: drop CSNET_RELAY support -- CSNET is long gone.
- CONFIG: fix bug caused with domain literal addresses (e.g.,
- ``[128.32.131.12]'') when FEATURE(allmasquerade)
- was set; it would get an additional @masquerade.host
- added to the address. Problem noted by Peter Wan
- of Georgia Tech.
- CONFIG: make sure that the local UUCP name is in $=w. From
- Jim Murray of Stratus.
- CONFIG: changes to UUCP rewriting to simulate IDA-style "V"
- mailer flag. Briefly, if you are sending to host
- "foo", then it rewrites "foo!...!baz" to "...!baz",
- "foo!baz" remains "foo!baz", and anything else has
- the local name prepended.
- CONFIG: portability fixes for HP-UX.
- DOC: several minor problems fixed in the Install & Op Guide.
- MAKEMAP: fix core dump problem on lines that are too long or
- which lack newline. From Mark Delany.
- MAILSTATS: print sums of columns (total messages & kbytes
- in and out of the system). From Tom Ferrin of UC
- San Francisco Computer Graphics Lab.
- SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES:
- On HP-UX, /etc/sendmail.cf has been moved to
- /usr/lib/sendmail.cf to match HP sendmail.
- Permissions have been tightened up on world-writable
- :include: files and accounts that have shells
- that are not listed in /etc/shells. This may
- cause some .forward files that have worked
- before to start failing.
- SIGUSR1 dumps some state to the log.
- NEW FILES:
- src/Makefile.DGUX
- src/Makefile.Dynix
- src/Makefile.FreeBSD
- src/Makefile.Mach386
- src/Makefile.NetBSD
- src/Makefile.RISCos
- src/Makefile.SCO
- src/Makefile.SVR4
- src/Makefile.Titan
- cf/mailer/pop.m4
- cf/ostype/bsdi1.0.m4
- cf/ostype/dgux.m4
- cf/ostype/dynix3.2.m4
- cf/ostype/sco3.2.m4
- makemap/Makefile.dist
- praliases/Makefile.dist
- 8.6.4/8.6.4 1993/10/31
- Repair core-dump problem (write to read-only memory segment)
- if you fall back to the return-to-Postmaster case in
- savemail. Problem reported by Richard Liu.
- Immediately diagnose bogus sender addresses in SMTP. This
- makes quite certain that crackers can't use this
- class of attack.
- Reliability Fix: check return value from fclose() and fsync()
- in a few critical places.
- Minor problem in initsys() that reversed a condition for
- redirecting the output channel on queue runs. It's
- not clear this code even does anything. From Eric
- Wassenaar of the Dutch National Institute for Nuclear
- and High-Energy Physics.
- Fix some problems that caused queue runs to do "too much work",
- such as double-reading the Errors-To: header. From
- Eric Wassenaar.
- Error messages on writing the temporary file (including the
- data file) were getting suppressed in SMTP -- this
- fix causes them to be properly reported. From Eric
- Wassenaar.
- Some changes to support AF_UNIX sockets -- this will only
- really become relevant in the next release, but some
- people need it for local patches. From Michael
- Corrigan of UC San Diego.
- Use dynamically allocated memory (instead of static buffers)
- for macros defined in initsys() and settime(); since
- these can have different values depending on which
- envelope they are in. From Eric Wassenaar.
- Improve logging to show ctladdr on to= logging; this tells you
- what uid/gid processes ran as.
- Fix a problem that caused error messages to be discarded if
- the sender address was unparseable for some reason;
- this was supposed to fall back to the "return to
- postmaster" case.
- Improve aliaswait backoff algorithm.
- Portability patches for Linux (8.6.3 required another header
- file) (from Karl London) and SCO UNIX.
- CONFIG: patch prog mailer to not strip host name off of envelope
- addresses (so that it matches local again). From
- Christopher Davis.
- CONFIG: change uucp-dom mailer so that "<>" translates to $n;
- this prevents uux from seeing lines with null names like
- ``From Sat Oct 30 14:55:31 1993''. From Motonori
- Nakamura of Kyoto University.
- CONFIG: handle <list:;> syntax correctly. This isn't legal, but
- it shouldn't fail miserably. From Motonori Nakamura.
- 8.6.2/8.6.2 1993/10/15
- Put a "successful delivery" message in the transcript for
- addresses that get return-receipts.
- Put a prominent "this is only a warning" message in warning
- messages -- some people don't read carefully enough
- and end up sending the message several times.
- Include reason for temporary failure in the "warning" return
- message. Currently, it just says "cannot send for
- four hours".
- Fix the "Original message received" time generated for
- returntosender messages. It was previously listed as
- the current time. Bug reported by Eric Hagberg of
- Cornell University Medical College.
- If there is an error when writing the body of a message,
- don't send the trailing dot and wait for a response
- in sender SMTP, as this could cause the connection to
- hang up under some bizarre circumstances. From Eric
- Wassenaar.
- Fix some server SMTP synchronization problems caused when
- connections fail during message collection. From
- Eric Wassenaar.
- Fix a problem that can cause srvrsmtp to reject mail if the
- name server is down -- it accepts the RCPT but rejects
- the DATA command. Problem reported by Jim Murray of
- Stratus.
- Fix a problem that can cause core dumps if the config file
- incorrectly resolves to a null hostname. Reported by
- Allan Johannesen of WPI.
- Non-root use of -C flag, dangerous -f flags, and use of -oQ
- by non-root users were not put into
- X-Authentication-Warning:s as intended because the
- config file hadn't set the PrivacyOptions yet. Fix
- from Sven-Ove Westberg of the University of Lulea.
- Under very odd circumstances, the alias file rebuild code
- could get confused as to whether a database was
- open or not.
- Check "vendor code" on the end of V lines -- this is
- intended to provide a hook for vendor-specific
- configuration syntax. (This is a "new feature",
- but I've made an exception to my rule in a belief
- that this is a highly exceptional case.)
- Portability fixes for DG/UX (from Douglas Anderson of NCSC),
- SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
- (from Jon Forrest of UC Berkeley)
- CONFIG: fix ``mailer:host'' form of UUCP relay naming.
- 8.6.1/8.6 1993/10/08
- Portability fixes for A/UX and Encore UMAX V.
- Fix error message handling -- if you had a name server down
- causing an error during parsing, that message was never
- propagated to the queue file.
- 8.6/8.6 1993/10/05
- Configuration cleanup: make it easier to undo IDENTPROTO in
- conf.h (other systems have the same bug).
- If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
- getdtablesize() instead of sysconf(); a disturbingly
- large number of systems defined _SC_OPEN_MAX in the
- header files but don't have the syscall.
- Another patch to really truly ignore MX records in getcanonname
- if trymx == FALSE.
- Fix problem that caused the "250 IAA25499 Message accepted for
- delivery" message to be omitted if there was an error
- in the header of the message (e.g., a bad Errors-To:
- line). Pointed out by Michael Corrigan of UCSD.
- Announce name of host we are chatting when we get errors; this
- is an IDA-ism suggested by Christophe Wolfhugel.
- Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
- Australian Artificial Intelligence Institute), SCO Unix
- (from Murray Kucherawy of Hookup Communication Corp.),
- NeXT (from Vince DeMarco and myself), Linux (from
- Karl London <karl@borg.demon.co.uk>), BSDI (from
- Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
- Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
- Some changes to get around gcc optimizer bugs. From Takahiro
- Kanbe.
- Fix error recovery in queueup if another tf file of the same
- name already exists. Problem stumbled over by Bill
- Wisner of The Well.
- Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
- Problem noted by Keith McMillan of Ameritech Services.
- Deal with group permissions properly when opening .forward and
- :include: files. This relaxes the 8.1C restrictions
- slightly more. This includes proper setting of groups
- when reading :include: files, allowing you to read some
- files that you should be able to read but have previously
- been denied unless you owned them or they had "other"
- read permission.
- Make certain that $j is in $=w (after the .cf is read) so that
- if the user is forced to override some silly system,
- MX suppression will still work.
- Fix a couple of efficiency problems where newstr was double-
- calling expensive routines. In at least one case, it
- wasn't guaranteed that they would always return the
- same result. Problem noted by Christophe Wolfhugel.
- Fix null pointer dereference in putoutmsg -- only on an error
- condition from a non-SMTP mailer. From Motonori
- Nakamura.
- Macro expand "C" line class definitions before scanning so that
- "CX $Z" works.
- Fix problem that caused error message to be sent while still
- trying to send the original message if the connection
- is closed during a DATA command after getting an error
- on an RCPT command (pretty obscure). Problem reported
- by John Myers of CMU.
- Fix reply to NOOP to be 250 instead of 200 -- this is a long
- term bug.
- Fix a nasty bug causing core dumps when returning the "warning:
- cannot deliver for N hours -- will keep trying" message;
- it only occurred if you had PostmasterCopy set and
- only on some architectures. Although sendmail would
- keep trying, it would send error messages on each
- queue interval. This is an important fix.
- Allow u and g options to take user and group names respectively.
- Don't do a chdir into the queue directory in -bt mode to make
- ruleset testing a bit easier.
- Don't allow users to turn off logging (using -oL) on the command
- line -- command line can only raise, not lower, logging
- level.
- Set $u to the original recipient on the SMTP transaction or on
- the command line. This is only done if there is exactly
- one recipient. Technically, this does not meet the
- specs, because it does not guarantee a domain on the
- address.
- Fix a problem that dumped error messages on bad addresses if
- you used the -t flag. Problem noted by Josh Smith of
- Harvey Mudd College.
- Given an address such as ``<foo> <bar>'', auto-quote the first
- ``<foo>'' part, giving ``"<foo>" <bar>''. This is to
- avoid the problem of people who use angle brackets in
- their full name information.
- Fix a null pointer dereference if you set option "l", have
- an Errors-To: header in the message, and have Errors-To:
- defined in the config file H lines. From J.R. Oldroyd.
- Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
- wrong when compiling. Suggested by Rick McCarty of TI.
- Fix a problem that could pass negative SIZE parameter if the
- df file got lost; this would cause servers to always
- give a temporary failure, making the problem even worse.
- Problem noted by Allan Johannesen of WPI.
- Add "ident" timeout (one of the "r" option selectors) for IDENT
- protocol timeouts (30s default). Requested by Murray
- Kucherawy of HookUp Communication Corp. to handle bogus
- PC TCP/IP implementations.
- Change $w default definition to be just the first component of
- the domain name on config level 5. The $j macro defaults
- to the FQDN; $m remains as before. This lets well-behaved
- config files use any of the short, long, or subdomain
- names.
- Add makesendmail script in src to try to automate multi-architecture
- builds. I know, this is sub-optimal, but it is still
- helpful.
- Fix very obscure race condition that can cause a queue run to
- get a queue file for an already completed job. This
- problem has existed for years. Problem noted by the
- long suffering Allan Johannesen of WPI.
- Fix a problem that caused the raw sender name to be passed to
- udbsender instead of the canonified name -- this caused
- it to sometimes miss records that it should have found.
- Relax check of name on HELO packet so that a program using -bs
- that claims to be itself works properly.
- Restore rewriting of $: part of address through 2, R, 4 in
- buildaddr -- this requires passing a lot of flags to get
- it right. Unlike old versions, this ONLY rewrites
- recipient addresses, not sender addresses.
- Fix a bug that caused core dumps in config files that cannot
- resolve /file/name style addresses. Fix from Jonathan
- Kamens of OpenVision Technologies.
- Fix problem with fcntl locking that can cause error returns to
- be lost if the lock is lost; this required fully
- queueing everything, dropping the envelope (so errors
- would get returned), and then re-reading the queue from
- scratch.
- Fix a problem that caused aliases that redefine an otherwise
- true address to still send to the original address
- if and only if the alias failed in certain bizarre
- ways (e.g, if they pointed at a list:; syntax address).
- Problem pointed out by Jonathan Kamens.
- Remove support for frozen configuration files. They caused
- more trouble than it was worth.
- Fix problem that can cause error messages to get ignored when
- using both -odb and -t flags. Problem noted by Rob
- McNicholas at U.C. Berkeley.
- Include all "normal" variations on hostname in $=w. For example,
- if the host name is vangogh.cs.berkeley.edu, $=w will
- contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
- Add "restrictqrun" privacy flag -- without this, anyone can run
- the queue.
- Reset SmtpPhase global on initial connection creation so that
- messages don't come out with stale information.
- Pass an "ext" argument to lockfile so that error/log messages
- will properly reflect the true filename being locked.
- Put all [...] address forms into $=w -- this eliminates the need
- for MAXIPADDR in conf.h. Suggested by John Gardiner
- Myers of CMU.
- Fix a bug that can cause qf files to be left around even after
- an SMTP RSET command. Problem and fix from Michael
- Corrigan.
- Don't send a PostmasterCopy to errors when the Precedence: is
- negative. Error reports still go to the envelope
- sender address.
- Add LA_SHORT for load averages.
- Lock sendmail.st file when posting statistics.
- Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
- set the size of the TCP send and receive buffers; if you
- run over a slow slip line you may need to set these down
- (although it would be better to fix the SLIP implementation
- so that it's not necessary to recompile every program
- that does bulk data transfer).
- Allow null defaults on $( ... $) lookups. Problem reported by
- Amir Plivatsky.
- Diagnose crufty S and V config lines. This resulted from an
- observation that some people were using the SITE macro
- without the SITECONFIG macro first, which was causing
- bogus config files that were not caught.
- Fix makemap -f flag to turn off case folding (it was turning it
- on instead). THIS IS A USER VISIBLE CHANGE!!!
- Fix a problem that caused multiple error messages to be sent if
- you used "sendmail -t -oem -odb", your system uses fcntl
- locking, and one of the recipient addresses is unknown.
- Reset uid earlier in include() so that recursive .forwards or
- :include:s don't use the wrong uid.
- If file descriptor 0, 1, or 2 was closed when sendmail was
- called, the code to recover the descriptor was broken.
- This sometimes (only sometimes) caused problems with the
- alias file. Fix from Motonori Nakamura.
- Fix a problem that caused aliaswait to go into infinite recursion
- if the @:@ metasymbol wasn't found in the alias file.
- Improve error message on newaliases if database files cannot be
- opened or if running with no database format defined.
- Do a better estimation of the size of error messages when NoReturn
- is set. Problem noted by P{r (Pell) Emanuelsson.
- Fix a problem causing the "c" option (don't connect to expensive
- mailers) to be ignored in SMTP. Problem noted and the
- solution suggested by Robert Elz of The University of
- Melbourne.
- Improve connection caching algorithm by passing "[host]" to
- hostsignature, which strips the square brackets and
- returns the real name. This allows mailertable entries
- to match regular entries.
- Re-enable Return-Receipt-To: -- people seem to want this stupid
- feature, even if it doesn't work right.
- Catch and log attempts to try the "wiz" command in server SMTP.
- This also ups the log level from LOG_NOTICE to LOG_CRIT.
- Be more generous at assigning $z to the home directory -- do this
- for programs that are specified through a .forward file.
- Fix from Andrew Chang of Sun Microsystems.
- Always save a fatal error message in preference to a non-fatal
- error message so that the "subject" line of return
- messages is the best possible.
- CONFIG: reduce the number of quotes needed to quote configuration
- parameters with commas: two quotes should work now, e.g.,
- define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
- CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
- connections (domain-ized UUCP).
- CONFIG: fix bug in default maps (-o must be before database file
- name). Pointed out by Christophe Wolfhugel.
- CONFIG: add FEATURE(nodns) to state that we are not relying on
- DNS. This would presumably be used in UUCP islands.
- CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
- CONFIG: log $u in Received: line. This is in technical violation
- of the standards, since it doesn't guarantee a domain
- on the address.
- CONFIG: don't assume "m" in local mailer flags -- this means that
- if you redefine LOCAL_MAILER_FLAGS you will have to include
- the "m" flag should you want it. Apparently some Solaris 2.2
- installations can't handle multiple local recipients.
- Problem noted by Josh Smith.
- CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
- CONFIG: change default version level from 4 to 5.
- CONFIG: add FEATURE(nullclient) to create a config file that
- forwards all mail to a hub without ever looking at the
- addresses in any detail.
- CONFIG: properly strip mailer: information off of relays when
- used to change .BITNET form into %-hack form.
- CONFIG: fix a problem that caused infinite loops if presented
- with an address such as "!foo".
- CONFIG: check for self literal (e.g., [128.32.131.12]) even if
- the reverse "PTR" mapping is broken. There's a better
- way to do this, but the change is fairly major and I
- want to hold it for another release. Problem noted by
- Bret Marquis.
- 8.5/8.5 1993/07/23
- Serious bug: if you used a command line recipient that was unknown
- sendmail would not send a return message (it was treating
- everything as though it had an SMTP-style client that
- would do the return itself). Problem noted by Josh Smith.
- Change "trymx" option in getcanonname() to ignore all MX data,
- even during a T_ANY query. This actually didn't break
- anything, because the only time you called getcanonname
- with !trymx was if you already knew there were no MX
- records, but it is somewhat cleaner. From Motonori
- Nakamura.
- Don't call getcanonname from getmxrr if you already know there
- are no DNS records matching the name.
- Fix a problem causing error messages to always include "The
- original message was received ... from localhost".
- The correct original host information is now included.
- Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
- version of "test" doesn't have the -x flag). Change it
- to use -f instead. From John Myers.
- CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
- esmtp -- it should be smtp.
- CONFIG: send all relayed mail using confRELAY_MAILER (defaults
- to "relay" (a variant of "smtp") if MAILER(smtp) is used,
- else "suucp" if MAILER(uucp) is used, else "unknown");
- this cleans up the configs somewhat. This fixes a serious
- problem that caused route-addrs to get mistaken as relays,
- pointed out by John Myers. WARNING: this also causes
- the default on SMART_HOST to change from "suucp" to
- "relay" if you have MAILER(smtp) specified.
- 8.4/8.4 1993/07/22
- Add option `w'. If you receive a message that comes to you because
- you are the best (lowest preference) target of an MX, and
- you haven't explicitly recognized the source MX host in
- your .cf file, this option will cause you to try the target
- host directly (as if there were no MX for it at all). If
- `w' is not set, this case is a configuration error.
- Beware: if `w' is set, senders may get bogus errors like
- "message timed out" or "host unknown" for problems that
- are really configuration errors. This option is
- disrecommended, provided only for compatibility with
- UIUC sendmail.
- Fix a problem that caused the incoming socket to be left open
- when sendmail forks after the DATA command. This caused
- calling systems to wait in FIN_WAIT_2 state until the
- entire list was processed and the child closed -- a
- potentially prodigious amount of time. Problem noted
- by Neil Rickert.
- Fix problem (created in 6.64) that caused mail sent to multiple
- addresses, one of which was a bad address, to completely
- suppress the sending of the message. This changes
- handling of EF_FATALERRS somewhat, and adds an
- EF_GLOBALERRS flag. This also fixes a potential problem
- with duplicate error messages if there is a syntax error
- in the header of a message that isn't noticed until late
- in processing. Original problem pointed out by Josh Smith
- of Harvey Mudd College. This release includes quite a bit
- of dickering with error handling (see below).
- Back out SMTP transaction if MAIL gets nested 501 error. This
- will only hurt already-broken software and should help
- humans.
- Fix a problem that broke aliases when neither NDBM nor NEWDB were
- compiled in. It would never read the alias file.
- Repair unbalanced `)' and `>' (the "open" versions are already
- repaired).
- Logging of "done" in dropenvelope() was incorrect: it would
- log this even when the queue file still existed. Change
- this to only log "done" (at log level 11) when the
- queue file is actually removed. From John Myers.
- Log "lost connection" in server SMTP at log level 20 if there
- is no pending transaction. Some senders just close the
- connection rather than sending QUIT.
- Fix a bug causing getmxrr to add a dot to the end of unqualified
- domains that do not have MX records -- this would cause
- the subsequent host name lookup to fail. The problem
- only occurred if you had FEATURE(nocanonify) set.
- Problem noted by Rick McCarty of Texas Instruments.
- Fix invocation of setvbuf when passed a -X flag -- I had
- unwittingly used an ANSI C extension, and this caused
- core dumps on some machines.
- Diagnose self-destructive alias loops on RCPT as well as EXPN.
- Previously it just gave an empty send queue, which
- then gave either "Need RCPT (recipient)" at the DATA
- (confusing, since you had given an RCPT command which
- returned 250) or just dropped the email, depending on
- whether you were running VERBose mode. Now it usually
- diagnoses this case as "aliasing/forwarding loop broken".
- Unfortunately, it still doesn't adequately diagnose
- some true error conditions.
- Add internal concept of "warning messages" using 6xx codes.
- These are not reported only to Postmaster. Unbalanced
- parens, brackets, and quotes are printed as 653 codes.
- They are always mapped to 5xx codes before use in SMTP.
- Clean up error messages to tell both the actual address that
- failed and the alias they arose from. This makes it
- somewhat easier to diagnose problems. Difficulty noted
- by Motonori Nakamura.
- Fix a problem that inappropriately added a ctladdr to addresses
- that shouldn't have had one during a queue run. This
- caused error messages to be handled differently during
- a queue run than a direct run.
- Don't print the qf name and line number if you get errors during
- the direct run of the queue from srvrsmtp -- this was
- just extra stuff for users to crawl through.
- Put command line flags on second line of pid file so you can
- auto-restart the daemon with all appropriate arguments.
- Use "kill `head -1 /etc/sendmail.pid`" to stop the
- daemon, and "eval `tail -1 /etc/sendmail.pid`" to
- restart it.
- Remove the ``setuid(getuid())'' in main -- this caused the
- IDENT daemon to screw up. This required that I change
- HASSETEUID to HASSETREUID and complicate the mode
- changing somewhat because both Ultrix and SunOS seem
- to have a bug causing seteuid() to set the saved uid
- as well as the effective. The program test/t_setreuid.c
- will test to see if your implementation of setreuid(2)
- is appropriately functional.
- The FallBackMX (option V) handling failed to properly identify
- fallback to yourself -- most of the code was there,
- but it wasn't being enabled. Problem noted by Murray
- Kucherawy of the University of Waterloo.
- Change :include: open timeout from ETIMEDOUT to an internal
- code EOPENTIMEOUT; this avoids adding "during SmtpPhase
- with CurHostName" in error messages, which can be
- confusing. Reported by Jonathan Kamens of OpenVision
- Technologies.
- Back out setpgrp (setpgid on POSIX systems) call to reset the
- process group id. The original fix was to get around
- some problems with recalcitrant MUAs, but it breaks
- any call from a shell that creates a process group id
- different from the process id. I could try to fix
- this by diddling the tty owner (using tcsetpgrp or
- equivalent) but this is too likely to break other
- things.
- Portability changes:
- Support -M as equivalent to -oM on Ultrix -- apparently
- DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
- instead of using standard flags. Oh joy. This
- behavior reported by Jon Giltner of University
- of Colorado.
- SGI IRIX -- this includes several changes that should
- help other strict ANSI compilers.
- SCO Unix -- from Murray Kucherawy of HookUp Communication
- Corporation.
- Solaris running the Sun C compiler (which despite the
- documentation apparently doesn't define
- __STDC__ by default).
- ConvexOS from Eric Schnoebelen of Convex.
- Sony NEWS workstations and Omron LUNA workstations from
- Motonori Nakamura.
- CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
- CONFIG: delete `C' and `e' from default SMTP mailers flags;
- several people have made a good argument that this
- creates more problems than it solves (although this
- may prove painful in the short run).
- CONFIG: generalize all the relays to accept a "mailer:host"
- format.
- CONFIG: move local processing in ruleset 0 into a new ruleset
- 98 (8 on old sendmail). Domain literal [a.b.c.d]
- addresses are also passed through this ruleset.
- CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
- internet-style addresses would "fall off the end" of
- ruleset zero and be interpreted as local -- however,
- the angle brackets confused the recursive call.
- These are now diagnosed as "Unrecognized host name".
- CONFIG: USENET rules weren't included in S0 because of a mistaken
- ifdef(`_MAILER_USENET_') instead of
- ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik
- of SINTEF RUNIT, Oslo.
- CONFIG: move up LOCAL_RULE_0 processing so that it happens very
- early in ruleset 0; this allows .mc authors to bypass
- things like the "short circuit" code for local addresses.
- Prompted by a comment by Bill Wisner of The Well.
- CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
- esmtp) to send SMTP mail. This allows you to default
- to esmtp but use a mailertable or other override to
- deal with broken servers. This logic was pointed out
- to me by Bill Wisner. Ditto for confLOCAL_MAILER.
- Changes to cf/sh/makeinfo.sh to make it portable to SVR4
- environments. Ugly as sin.
- 8.3/8.3 1993/07/13
- Fix setuid problems introduced in 8.2 that caused messages
- like "Cannot create qfXXXXXX: Invalid argument"
- or "Cannot reopen dfXXXXXX: Permission denied". This
- involved a new compile flag "HASSETEUID" that takes
- the place of the old _POSIX_SAVED_IDS -- it turns out
- that the POSIX interface is broken enough to break
- some systems badly. This includes some fixes for
- HP-UX. Also fixes problems where the real uid is
- not reset properly on startup (from Neil Rickert).
- Fix a problem that caused timed out messages to not report the
- addresses that timed out. Error messages are also more
- "user friendly".
- Drop required bandwidth on connections from 64 bytes/sec to
- 16 bytes/sec.
- Further Solaris portability changes -- doesn't require the BSD
- compatibility library. This also adds a new
- "HASGETDTABLESIZE" compile flag which can be used if
- you want to use getdtablesize(2) instead of sysconf(2).
- These are loosely based on changes from David Meyer at
- University of Oregon. This now seems to work, at least
- for quick test cases.
- Fix a problem that can cause duplicate error messages to be
- sent if you are in SMTP, you send to multiple addresses,
- and at least one of those addresses is good and points
- to an account that has a .forward file (whew!).
- Fix a problem causing messages to be discarded if checkcompat()
- returned EX_TEMPFAIL (because it didn't properly mark
- the "to" address). Problem noted by John Myers.
- Fix dfopen to return NULL if the open failed; I was depending
- on fdopen(-1) returning NULL, which isn't the case. This
- isn't serious, but does result in weird error diagnoses.
- From Michael Corrigan.
- CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
- messages sent through UUCP-family mailers. Suggested
- by Bill Wisner of The Well.
- CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
- include a "uucp-dom" mailer that uses domain-style
- addressing. Suggested by Bill Wisner.
- CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
- LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by
- Christophe Wolfhugel.
- CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel.
- 8.2/8.2 1993/07/11
- Don't drop out on config file parse errors in -bt mode.
- On older configuration files, assume option "l" (use Errors-To
- header) for back compatibility. NOTE: this DOES NOT
- imply an endorsement of the Errors-To: header in any way.
- Accept -x flag on AIX-3 as well as OSF/1. Why, why, why???
- Don't log errors on EHLO -- it isn't a "real" error for an old
- SMTP server to give an error on this command, and
- logging it in the transcript can be confusing. Fix
- from Bill Wisner.
- IRIX compatibility changes provided by Dan Rich
- <drich@sandman.lerc.nasa.gov>.
- Solaris 2 compatibility changes. Provided by Bob Cunningham
- <bob@kahala.soest.hawaii.edu>, John Oleynick
- <juo@klinzhai.rutgers.edu>
- Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
- move usersmtp (smtpinit and smtpmailfrom) to -d18 to
- match the other flags in that file.
- Flush transcript before fork in mailfile(). From Eric Wassenaar.
- Save h_errno in mci struct and improve error message display.
- Changes from Eric Wassenaar.
- Open /dev/null for the transcript if the create of the xf file
- failed; this avoids at least one possible null pointer
- reference in very weird cases. From Eric Wassenaar.
- Clean up statistics gathering; it was over-reporting because of
- forks. From Eric Wassenaar.
- Fix problem that causes old Return-Path: line to override new
- Return-Path: line (conf.c needs H_FORCE to avoid
- re-using old value). From Motonori Nakamura.
- Fix broken -m flag in K definition -- even if -m (match only)
- was specified, it would still replace the key with the
- value. Noted by Rick McCarty of Texas Instruments.
- If the name server timed out over several days, no "timed out"
- message would ever be sent back. The timeout code
- has been moved from markfailure() to dropenvelope()
- so that all such failures should be diagnosed. Pointed
- out by Christophe Wolfhugel and others.
- Relax safefile() constraints: directories in an include or
- forward path must be readable by self if the controlling
- user owns the entry, readable by all otherwise (e.g.,
- when reading your .forward file, you have to own and
- have X permission in it; everyone needs X permission in
- the root and directories leading up to your home);
- include files must be readable by anyone, but need not
- be owned by you.
- If _POSIX_SAVED_IDS is defined, setuid to the owner before
- reading a .forward file; this gets around some problems
- on NFS mounts if root permission is not exported and
- the user's home directory isn't x'able.
- Additional NeXT portability enhancements from Axel Zinser.
- Additional HP-UX portability enhancements from Brian Bullen.
- Add a timeout around SMTP message writes; this assumes you can
- get throughput of at least 64 bytes/second. Note that
- this does not impact the "datafinal" default, which
- is separate; this is just intended to work around
- network clogs that will occur before the final dot
- is sent. From Eric Wassenaar.
- Change map code to set the "include null" flag adaptively --
- it initially tries both, but if it finds anything
- matching without a null it never tries again with a
- null and vice versa. If -N is specified, it never
- tries without the null and creates new maps with a
- null byte. If -O is specified, it never tries with
- the null (for efficiency). If -N and -O are specified,
- you get -NO (get it?) lookup at all, so this would
- be a bad idea. If you don't specify either -N or -O,
- it adapts.
- Fix recognition of "same from address" so that MH submissions
- will insert the appropriate full name information;
- this used to work and got broken somewhere along the
- way.
- Some changes to eliminate some unnecessary SYSERRs in the
- log. For example, if you lost a connection, don't
- bother reporting that fact on the connection you lost.
- Add some "extended debugging" flags to try to track down
- why we get occasional problems with file descriptor
- one being closed when execing a mailer; it seems to
- only happen when there has been another error in the
- same transaction. This requires XDEBUG, defined
- by default in conf.h.
- Add "-X filename" command line flag, which logs both sides of
- all SMTP transactions. This is intended ONLY for
- debugging bad implementations of other mailers; start
- it up, send a message from a mailer that is failing,
- and then kill it off and examine the indicated log.
- This output is not intended to be particularly human
- readable. This also adds the HASSETVBUF compile
- flag, defaulted on if your compiler defines __STDC__.
- CONFIG: change SMART_HOST to override an SMTP mailer. If you
- have a local net that should get direct connects, you
- will need to use LOCAL_NET_CONFIG to catch these hosts.
- See cf/README for an example.
- CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
- sites that don't use the -d flag.
- CONFIG: hide recipient addresses as well as sender addresses
- behind $M if FEATURE(allmasquerade) is specified; this
- has been requested by several people, but can break
- local aliases. For example, if you mail to "localalias"
- this will be rewritten as "localalias@masqueradehost";
- although initial delivery will work, replies will be
- broken. Use it sparingly.
- CONFIG: add FEATURE(domaintable). This maps unqualified domains
- to qualified domains in headers. I believe this is
- largely equivalent to the IDA feature of the same name.
- CONFIG: use $U as UUCP name instead of $k. This permits you
- to override the "system name" as your UUCP name --
- in particular, to use domain-ized UUCP names. From
- Bill Wisner of The Well.
- CONFIG: create new mailer "esmtp" that always tries EHLO
- first. This is currently unused in the config files,
- but could be used in a mailertable entry.
- 8.1C/8.1B 1993/06/27
- Serious security bug fix: it was possible to read any file on
- the system, regardless of ownership and permissions.
- If a subroutine returns a fully qualified address, return it
- immediately instead of feeding it back into rewriting.
- This fixes a problem with mailertable lookups.
- CONFIG: fix some M4 frotz (concat => CONCAT)
- 8.1B/8.1A 1993/06/12
- Serious bug fix: pattern matching backup algorithm stepped by
- two tokens in classes instead of one. Found by Claus
- Assmann at University of Kiel, Germany.
- 8.1A/8.1A 1993/06/08
- Another mailertable fix....
- 8.1/8.1 1993/06/07
- 4.4BSD freeze. No semantic changes.