RELEASE_NOTES
上传用户:xu_441
上传日期:2007-01-04
资源大小:1640k
文件大小:330k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. this can fill your mqueue partition -- this is a possible
  2. denial-of-service attack.
  3. Don't reject all numeric local user names unless HESIOD is
  4. defined.  It turns out that Posix allows all-numeric
  5. user names.  Fix from Tony Sanders of BSDI.
  6. Add service switch support.  If the local OS has a service
  7. switch (e.g., /etc/nsswitch.conf on Solaris or /etc/svc.conf
  8. on DEC systems) that will be used; otherwise, it falls back
  9. to using a local mechanism based on the ServiceSwitchFile
  10. option (default: /etc/service.switch).  For example, if the
  11. service switch lists "files" and "nis" for the aliases
  12. service, that will be the default lookup order.  the "files"
  13. ("local" on DEC) service type expands to any alias files
  14. you listed in the configuration file, even if they aren't
  15. actually file lookups.
  16. Option I (NameServerOptions) no longer sets the "UseNameServer"
  17. variable which tells whether or not DNS should be considered
  18. canonical.  This is now determined based on whether or not
  19. "dns" is in the service list for "hosts".
  20. Add preliminary support for the ESMTP "DSN" extension (Delivery
  21. Status Notifications).  DSN notifications override
  22. Return-Receipt-To: headers, which are bogus anyhow --
  23. support for them has been removed.
  24. Add T=mts-name-type/address-type/diagnostic-type keyletter to mailer
  25. definitions to define the types used in DSN returns for
  26. MTA names, addresses, and diagnostics respectively.
  27. Extend heuristic to force running in ESMTP mode to look for the
  28. five-character string "ESMTP" anywhere in the 220 greeting
  29. message (not just the second line).  This is to provide
  30. better compatibility with other ESMTP servers.
  31. Print sequence number of job when running the queue so you can
  32. easily see how much progress you have made.  Suggested
  33. by Peter Wemm of DIALix.
  34. Map newlines to spaces in logged message-ids; some versions of
  35. syslog truncate the rest of the line after newlines.
  36. Suggested by Fletcher Mattox of U. Texas.
  37. Move up forking for job runs so that if a message is split into
  38. multiple envelopes you don't get "fork storms" -- this
  39. also improves the connection cache utilization.
  40. Accept "<<>>", "<<<>>>", and so forth as equivalent to "<>" for
  41. the purposes of refusing to send error returns.  Suggested
  42. by Motonori Nakamura of Ritsumeikan University.
  43. Relax rules on when a file can be written when referenced from
  44. the aliases file: use the default uid/gid instead of the
  45. real uid/gid.  This allows you to create a file owned by
  46. and writable only by the default uid/gid that will work
  47. all the time (without having the setuid bit set).  Change
  48. suggested by Shau-Ping Lo and Andrew Cheng of Sun
  49. Microsystems.
  50. Add "DialDelay" option (no short name) to provide an "extra"
  51. delay for dial on demand systems.  If this is non-zero
  52. and a connect fails, sendmail will wait this long and
  53. then try again.  If it takes longer than the kernel
  54. timeout interval to establish the connection, this
  55. option can give the network software time to establish
  56. the link.  The default units are seconds.
  57. Move logging of sender information to be as early as possible;
  58. previously, it could be delayed a while for SMTP mail
  59. sent to aliases.  Suggested by Brad Knowles of the
  60. Defense Information Systems Agency.
  61. Call res_init() before setting RES_DEBUG; this is required by
  62. BIND 4.9.3, or so I'm told.  From Douglas Anderson of
  63. the National Computer Security Center.
  64. Add xdelay= field in logs -- this is a transaction delay, telling
  65. you how long it took to deliver to this address on the
  66. last try.  It is intended to be used for sorting mailing
  67. lists to favor "quick" addresses.  Provided for use by
  68. the mailprio scripts (see below).
  69. If a map cannot be opened, and that map is non-optional, and
  70. an address requires that map for resolution, queue the
  71. map instead of bouncing it.  This involves creating a
  72. pseudo-class of maps called "bogus-map" -- if a required
  73. map cannot be opened, the class is changed to bogus-map;
  74. all queries against bogus-map return "tempfail".  The
  75. bogus-map class is not directly accessible.  A sample
  76. implementation was donated by Jem Taylor of Glasgow
  77. University Computing Service.
  78. Fix a possible core dump when mailing to a program that talks
  79. SMTP on its standard input.  Fix from Keith Moore of
  80. the University of Kentucky.
  81. Make it possible to resolve filenames to $#local $: @ /filename;
  82. previously, the "@" would cause it to not be recognized
  83. as a file.  Problem noted by Brian Hill of U.C. Davis.
  84. Accept a -1 signal to re-exec the daemon.  This only works if
  85. argv[0] is a full path to sendmail.
  86. Fix bug in "addr=..." field in O option on little-endian machines
  87. -- the network number wasn't being converted to network
  88. byte order.  Patch from Kurt Lidl of Pix Technologies
  89. Corporation.
  90. Pre-initialize the resolver early on; this is to avoid a bug with
  91. BIND 4.9.3 that can cause the _res.retry field to get
  92. reset to zero, causing all name server lookups to time
  93. out.  Fix from Matt Day of Artisoft.
  94. Restore T line (trusted users) in config file -- but instead of
  95. locking out the -f flag, they just tell whether or not
  96. an X-Authentication-Warning: will be added.  This really
  97. just creates new entries in class 't', so "Ft/file/name"
  98. can be used to read trusted user names from a file.
  99. Trusted users are also allowed to execute programs even
  100. if they have a shell that isn't in /etc/shells.
  101. Improve NEWDB alias file rebuilding so it will create them
  102. properly if they do not already exist.  This had been
  103. a MAYBENEXTRELEASE feature in 8.6.9.
  104. Check for @:@ entry in NIS maps before starting up to avoid
  105. (but not prevent, sigh) race conditions.  This ought to
  106. be handled properly in ypserv, but isn't.  Suggested by
  107. Michael Beirne of Motorola.
  108. Refuse connections if there isn't enough space on the filesystem
  109. holding the queue.  Contributed by Robert Dana of Wolf
  110. Communications.
  111. Skip checking for directory permissions in the path to a file
  112. when checking for file permissions iff setreuid()
  113. succeeded -- it is unnecessary in that case.  This avoids
  114. significant performance problems when looking for .forward
  115. files.  Based on a suggestion by Win Bent of USC.
  116. Allow symbolic ruleset names.  Syntax can be "Sname" to get an
  117. arbitrary ruleset number assigned or "Sname = integer"
  118. to assign a specific ruleset number.  Reference is
  119. $>name_or_number.  Names can be composed of alphas, digits,
  120. underscore, or hyphen (first character must be non-numeric).
  121. Allow -o flag on AliasFile lines to make the alias file optional.
  122. From Bryan Costales of ICSI.
  123. Add NoRecipientAction option to handle the case where there is
  124. no legal recipient header in the message.  It can take
  125. on values:
  126.   None Leave the message as is.  The
  127. message will be passed on even
  128. though it is in technically
  129. illegal syntax.
  130.   Add-To Add a To: header with any
  131. recipients that it can find from
  132. the envelope.  This risks exposing
  133. Bcc: recipients.
  134.   Add-Apparently-To Add an Apparently-To: header.  This
  135. has almost no redeeming social value,
  136. and is provided only for back
  137. compatibility.
  138.   Add-To-Undisclosed Add a header reading
  139. To: undisclosed-recipients:;
  140. which will have the effect of
  141. making the message legal without
  142. exposing Bcc: recipients.
  143.   Add-Bcc To add an empty Bcc: header.
  144. There is a chance that mailers down
  145. the line will delete this header,
  146. which could cause exposure of Bcc:
  147. recipients.
  148. The default is NoRecipientAction=None.
  149. Truncate (rather than delete) Bcc: lines in the header.  This
  150. should prevent later sendmails (at least, those that don't
  151. themselves delete Bcc:) from considering this message to
  152. be non-conforming -- although it does imply that non-blind
  153. recipients can see that a Bcc: was sent, albeit not to whom.
  154. Add SafeFileEnvironment option.  If declared, files named as delivery
  155. targets must be regular files in addition to the regular
  156. checks.  Also, if the option is non-null then it is used as
  157. the name of a directory that is used as a chroot(2)
  158. environment for the delivery; the file names listed in an
  159. alias or forward should include the name of this root.
  160. For example, if you run with
  161. O SafeFileEnvironment=/arch
  162. then aliases should reference "/arch/rest/of/path".  If a
  163. value is given, sendmail also won't try to save to
  164. /usr/tmp/dead.letter (instead it just leaves the job in the
  165. queue as Qfxxxxxx).  Inspired by *Hobbit*'s sendmail patch kit.
  166. Support -A flag for alias files; this will comma concatenate like
  167. entries.  For example, given the aliases:
  168. list: member1
  169. list: member2
  170. and an alias file declared as:
  171. OAhash:-A /etc/aliases
  172. the final alias inserted will be "list: member1,member2";
  173. without -A you will get an error on the second and subsequent
  174. alias for "list".  Contributed by Bryan Costales of ICSI.
  175. Line-buffer transcript file.  Suggested by Liudvikas Bukys.
  176. Fix a problem that could cause very long addresses to core dump in
  177. some special circumstances.  Problem pointed out by Allan
  178. Johannesen.
  179. (Internal change.)  Change interface to expand() (macro expansion)
  180. to be simpler and more consistent.
  181. Delete check for funny qf file names.  This didn't really give
  182. any extra security and caused some people some problems.
  183. (If you -really- want this, define PICKY_QF_NAME_CHECK
  184. at compile time.)  Suggested by Kyle Jones of UUNET.
  185. (Internal change.)  Change EF_NORETURN to EF_NO_BODY_RETN and
  186. merge with DSN code; this is simpler and more consistent.
  187. This may affect some people who have written their own
  188. checkcompat() routine.
  189. (Internal change.)  Eliminate `D' line in qf file.  The df file
  190. is now assumed to be the same name as the qf file (with
  191. the `q' changed to a `d', of course).
  192. Avoid forking for delivery if all recipient mailers are marked as
  193. "expensive" -- this can be a major cost on some systems.
  194. Essentially, this forces sendmail into "queue only" mode
  195. if all it is going to do is queue anyway.
  196. Avoid sending a null message in some rather unusual circumstances
  197. (specifically, the RCPT command returns a temporary
  198. failure but the connection is lost before the DATA
  199. command).  Fix from Scott Hammond of Secure Computing
  200. Corporation.
  201. Change makesendmail to use a somewhat more rational naming scheme:
  202. Makefiles and obj directories are named $os.$rel.$arch,
  203. where $os is the operating system (e.g., SunOS), $rel is
  204. the release number (e.g., 5.3), and $arch is the machine
  205. architecture (e.g., sun4).  Any of these can be omitted,
  206. and anything after the first dot in a release number can
  207. be replaced with "x" (e.g., SunOS.4.x.sun4).  The previous
  208. version used $os.$arch.$rel and was rather less general.
  209. Change makesendmail to do a "make depend" in the target directory
  210. when it is being created.  This involves adding an empty
  211. "depend:" entry in most Makefiles.
  212. Ignore IDENT return value if the OSTYPE field returns "OTHER",
  213. as indicated by RFC 1413.  Pointed out by Kari Hurtta
  214. of the Finnish Meteorological Institute.
  215. Fix problem that could cause multiple responses to DATA command
  216. on header syntax errors (e.g., lines beginning with colons).
  217. Problem noted by Jens Thomassen of the University of Oslo.
  218. Don't let null bytes in headers cause truncation of the rest of
  219. the header.
  220. Log Authentication-Warning:s.  Suggested by Motonori Nakamura.
  221. Increase timeouts on message data puts to allow time for receivers
  222. to canonify addresses in headers on the fly.  This is still
  223. a rather ugly heuristic.  From Motonori Nakamura.
  224. Add "HasWildcardMX" suboption to ResolverOptions; if set, MX
  225. records are not used when canonifying names, and when MX
  226. lookups are done for addressing they must be fully
  227. qualified.  This is useful if you have a wildcard MX record,
  228. although it may cause other problems.  In general, don't use
  229. wildcard MX records.  Patch from Motonori Nakamura.
  230. Eliminate default two-line SMTP greeting message.  Instead of
  231. adding an extra "ESMTP spoken here" line, the word "ESMTP"
  232. is added between the first and second word of the first
  233. line of the greeting message (i.e., immediately after the
  234. host name).  This eliminates the need for the BROKEN_SMTP_PEERS
  235. compile flag.  Old sendmails won't see the ESMTP, but that's
  236. acceptable because SIZE was the only useful extension that
  237. old sendmails understand.
  238. Avoid gethostbyname calls on UNIX domain sockets during SIGUSR1
  239. invoked state dumps.  From Masaharu Onishi.
  240. Allow on-line comments in .forward and :include: files; they are
  241. introduced by the string "<LWSP>#@#<LWSP>", where <LWSP>
  242. is a space or a tab.  This is intended for native
  243. representation of non-ASCII sets such as Japanese, where
  244. existing encodings would be unreadable or would lose
  245. data -- for example,
  246.  <motonori@cs.ritsumei.ac.jp> NAKAMURA Motonori
  247. (romanized/less information)
  248.  <motonori@cs.ritsumei.ac.jp> =?ISO-2022-JP?B?GyRCQ2ZCPBsoQg==?=
  249.       =?ISO-2022-JP?B?GyRCQUdFNRsoQg==?=
  250. (with MIME encoding, not human readable)
  251.  <motonori@cs.ritsumei.ac.jp> #@# ^[$BCfB<^[(B ^[$BAGE5^[(B
  252. (native encoding with ISO-2022-JP)
  253. The last form is human readable in the Japanese environment.
  254. Based on a fix from (surprise!) Motonori Nakamura.
  255. Don't make SMTP error returns on MAIL FROM: line be "sticky" for all
  256. messages to that host; these are most frequently associated
  257. with addresses rather than the host, with the exception of
  258. 421 (service shutting down).  The effect was to cause queues
  259. to sometimes take an excessive time to flush.  Reported by
  260. Robert Sargent of Southern Geographics Technologies and
  261. Eric Prestemon of American University.
  262. Add Nice=N mailer option to set the niceness at which a mailer will
  263. run.  This is actually a relative niceness (that is, an
  264. increment on the background value).
  265. Log queue runs that are skipped due to high loads.  They are logged
  266. at LOG_INFO priority iff the log level is > 8.  Contributed
  267. by Bruce Nagel of Data General.
  268. Allow the error mailer to accept a DSN-style error status code
  269. instead of an sysexits status code in the host part.
  270. Anything with a dot will be interpreted as a DSN-style code.
  271. Add new mailer flag: F=3 will tell translations to Quoted-Printable
  272. to encode characters that might be munged by an EBCDIC system
  273. in addition to the set required by RFC 1521.  The additional
  274. characters are !, ", #, $, @, [, , ], ^, `, {, |, }, and ~.
  275. (Think of "IBM 360" as the mnemonic for this flag.)
  276. Change check for mailing to files to look for a pathname of [FILE]
  277. rather than looking for the mailer named *file*.  The mapping
  278. of leading slashes still goes to the *file* mailer.  This
  279. allows you to implement the *file* mailer as a separate
  280. program, for example, to insert a Content-Length: header
  281. or do special security policy.  However, note that the usual
  282. initial checking for the file permissions is still done, and
  283. the program in question needs to be very careful about how
  284. it does the file write to avoid security problems.
  285. Be able to read ~root/.forward even if the path isn't accessible to
  286. regular users.  This is disrecommended because sendmail
  287. sometimes does not run as root (e.g., when an unsafe option
  288. is specified on the command line), but should otherwise be
  289. safe because .forward files must be owned by the user for
  290. whom mail is being forwarded, and cannot be a symbolic link.
  291. Suggested by Forrest Aldrich of Wang Laboratories.
  292. Add new "HostsFile" option that is the pathname to the /etc/hosts
  293. file.  This is used for canonifying hostnames when the
  294. service type is "files".
  295. Implement programs on F (read class from file) line.  The syntax is
  296. Fc|/path/to/program to read the output from the program
  297. into class "c".
  298. Probe the network interfaces to find alternate names for this
  299. host.  Requires the SIOCGIFCONF ioctl call.  Code
  300. contributed by SunSoft.
  301. Add "E" configuration line to set or propagate environment
  302. variables into children.  "E<envar>" will propagate
  303. the named variable from the environment when sendmail
  304. was invoked into any children it calls; "E<envar>=<value>"
  305. sets the named variable to the indicated value.  Any
  306. variables not explicitly named will not be in the child
  307. environment.  However, sendmail still forces an
  308. "AGENT=sendmail" environment variable, in part to enforce
  309. at least one environment variable, since many programs and
  310. libraries die horribly if this is not guaranteed.
  311. Change heuristic for rebuilding both NEWDB and NDBM versions of
  312. alias databases -- new algorithm looks for the substring
  313. "/yp/" in the file name.  This is more portable and involves
  314. less overhead.  Suggested by Motonori Nakamura.
  315. Dynamically allocate the queue work list so that you don't lose
  316. jobs in large queue runs.  The old QUEUESIZE compile parameter
  317. is replaced by QUEUESEGSIZE (the unit of allocation, which
  318. should not need to be changed) and the MaxQueueRunSize option,
  319. which is the absolute maximum number of jobs that will ever
  320. be handled in a single queue run.  Based on code contributed
  321. by Brian Coan of the Institute for Global Communications.
  322. Log message when a message is dropped because it exceeds the maximum
  323. message size.  Suggested by Leo Bicknell of Virginia Tech.
  324. Allow trusted users (those on a T line or in $=t) to use -bs without
  325. an X-Authentication-Warning: added.  Suggested by Mark Thomas
  326. of Mark G. Thomas Consulting.
  327. Announce state of compile flags on -d0.1 (-d0.10 throws in the
  328. OS-dependent defines).  The old semantic of -d0.1 to not
  329. run the daemon in background has been moved to -d99.100,
  330. and the old 52.5 flag (to avoid disconnect() from closing
  331. all output files) has been moved to 52.100.  This makes
  332. things more consistent (flags below .100 don't change
  333. semantics) and separates out the backgrounding so that
  334. it doesn't happen automatically on other unrelated debugging
  335. flags.
  336. If -t is used but no addresses are found in the header, give an
  337. error message rather than just doing nothing.  Fix from
  338. Motonori Nakamura.
  339. On systems (like SunOS) where the effective gid is not necessarily
  340. included in the group list returned by getgroups(), the
  341. `restrictmailq' option could sometimes cause an authorized
  342. user to not be able to use `mailq'.  Fix from Charles Hannum
  343. of MIT.
  344. Allow symbolic service names for [IPC] mailers.  Suggested by
  345. Gerry Magennis of Logica International.
  346. Add DontExpandCnames option to prevent $[ ... $] from expanding CNAMEs
  347. when running DNS.  For example, if the name FTP.Foo.ORG is
  348. a CNAME for Cruft.Foo.ORG, then when sitting on a machine in
  349. the Foo.ORG domain a lookup of "FTP" returns "Cruft.Foo.ORG"
  350. if this option is not set, or "FTP.Foo.ORG" if it is set.
  351. This is technically illegal under RFC 822 and 1123, but the
  352. IETF is moving toward legalizing it.  Note that turning on
  353. this option is not sufficient to guarantee that a downstream
  354. neighbor won't rewrite the address for you.
  355. Add "-m" flag to makesendmail script -- this tells you what object
  356. directory and Makefile it will use, but doesn't actually do
  357. the make.
  358. Do some additional checking on the contents of the qf file to try
  359. to detect attacks against the qf file.  In particular,
  360. abort on any line beginning "From ", and add an "end of
  361. file" line -- any data after that line is prohibited.
  362. Always use /etc/sendmail.cf, regardless of the arbitrary vendor
  363. choices.  This can be overridden in the Makefile by using
  364. either -DUSE_VENDOR_CF_PATH to get the vendor location
  365. (to the extent that we know it) or by defining
  366. _PATH_SENDMAILCF (which is a "hard override").  This allows
  367. sendmail 8 to have more consistent installation instructions.
  368. Allow macros on `K' line in config file.  Suggested by Andrew Chang
  369. of Sun Microsystems.
  370. Improved symbol table hash function from Eric Wassenaar.  This one
  371. is at least 50% faster.
  372. Fix problem that didn't notice that timeout on file open was a
  373. transient error.  Fix from Larry Parmelee of Cornell
  374. University.
  375. Allow comments (lines beginning with a `#') in files read for
  376. classes.  Suggested by Motonori Nakamura.
  377. Make SIGINT (usually ^C) in test mode return to the prompt instead
  378. of dropping out entirely.  This makes testing some of the
  379. name server lookups easier to deal with when there are
  380. hung servers.  From Motonori Nakamura.
  381. Add new ${opMode} macro that is set to the current operation mode
  382. (e.g., `s' for -bs, `t' for -bt, etc.).  Suggested by
  383. Claude Marinier <MARINIER@emp.ewd.dreo.dnd.ca>.
  384. Add new delivery mode (Odd) that defers all map lookups to queue runs.
  385. Kind of like queue-only mode (Odq) except it tries to avoid
  386. any external service requests; for dial-on-demand hosts that
  387. want to minimize DNS lookups when mail is being queued.  For
  388. this to work you will also have to make sure that gethostbyname
  389. of your local host name does not do a DNS lookup.
  390. Improved handling of "out of space" conditions from John Myers of
  391. Carnegie Mellon.
  392. Improved security for mailing to files on systems that have fchmod(2)
  393. support.
  394. Improve "cannot send message for N days" message -- now says "could
  395. not send for past N days".  Suggested by Tom Moore of AT&T
  396. Global Information Solutions.
  397. Less misleading Subject: line on messages sent to postmaster only.
  398. From Motonori Nakamura.
  399. Avoid duplicate error messages on bad command line flags.  From
  400. Motonori Nakamura.
  401. Better error message for case where ruleset 0 falls off the end
  402. or otherwise does not resolve to a canonical triple.
  403. Fix a problem that could cause multiple bounce messages if a bad
  404. address was sent along with a good address to an SMTP
  405. site where that SMTP site returned a 4yz code in response
  406. to the final dot of the data.  Problem reported by David
  407. James of British Telecom.
  408. Add "volatile" declarations so that gcc -O2 will work.  Patches
  409. from Alexander Dupuy of System Management ARTS.
  410. Delete duplicates in MX lists -- believe it or not, there are sites
  411. that list the same host twice in an MX list.  This deletion
  412. only works on adjacent preferences, so an MX list that
  413. had A=5, B=10, A=15 would leave both As, but one that had
  414. A=5, A=10, B=15 would reduce to A, B.  This is intentional,
  415. just in case there is something weird I haven't thought of.
  416. Suggested by Barry Shein of Software Tool & Die.
  417. SECURITY: .forward files cannot be symbolic links.  If they are,
  418. a bad guy can read your private files.
  419. PORTABILITY FIXES:
  420. Solaris 2 from Rob McMahon <cudcv@csv.warwick.ac.uk>.
  421. System V Release 4 from Motonori Nakamura of Ritsumeikan
  422. University.  This expands the disk size
  423. checking to include all (?) SVR4 configurations.
  424. System V Release 4 from Kimmo Suominen -- initgroups(3)
  425. and setrlimit(2) are both available.
  426. System V Release 4 from sob@sculley.ffg.com -- some versions
  427. apparently "have EX_OK defined in other headerfiles."
  428. Linux Makefile typo.
  429. Linux getusershell(3) is broken in Slackware 2.0 --
  430. from Andrew Pam of Xanadu Australia.
  431. More Linux tweaking from John Kennedy of California State
  432. University, Chico.
  433. Cray changes from Eric Wassenaar:  ``On Cray, shorts,
  434. ints, and longs are all 64 bits, and all structs
  435. are multiples of 64 bits.  This means that the
  436. sizeof operator returns only multiples of 8.
  437. This requires adaptation of code that really
  438. deals with 32 bit or 16 bit fields, such as IP
  439. addresses or nameserver fields.''
  440. DG/UX 5.4.3 from Mark T. Robinson <mtr@ornl.gov>.  To
  441. get the old behavior, use -DDGUX_5_4_2.
  442. DG/UX hack: add _FORCE_MAIL_LOCAL_=yes environment
  443. variable to fix bogus /bin/mail behavior.
  444. Tandem NonStop-UX from Rick McCarty <mccarty@mpd.tandem.com>.
  445. This also cleans up some System V Release 4 compile
  446. problems.
  447. Solaris 2: sendmail.cw file should be in /etc/mail to
  448. match all the other configuration files.  Fix
  449. from Glenn Barry of Emory University.
  450. Solaris 2.3: compile problem in conf.c.  Fix from Alain
  451. Nissen of the University of Liege, Belgium.
  452. Ultrix: freespace calculation was incorrect.  Fix from
  453. Takashi Kizu of Osaka University.
  454. SVR4: running in background gets a SIGTTOU because the
  455. emulation code doesn't realize that "getpeername"
  456. doesn't require reading the file.  Fix from Peter
  457. Wemm of DIALix.
  458. Solaris 2.3: due to an apparent bug in the socket emulation
  459. library, sockets can get into a "wedged" state where
  460. they just return EPROTO; closing and re-opening the
  461. socket clears the problem.  Fix from Bob Manson
  462. of Ohio State University.
  463. Hitachi 3050R & 3050RX running HI-UX/WE2: portability
  464. fixes from Akihiro Hashimoto ("Hash") of Chiba
  465. University.
  466. AIX changes to allow setproctitle to work from Rainer Sch鰌f
  467. of Zentrum f黵 Datenverarbeitung der Universit鋞
  468. Mainz.
  469. AIX changes for load average from Ed Ravin of NASA/Goddard.
  470. SCO Unix from Chip Rosenthal of Unicom (code was using the
  471. wrong statfs call).
  472. ANSI C fixes from Adam Glass (NetBSD project).
  473. Stardent Titan/ANSI C fixes from Kate Hedstrom of Rutgers
  474. University.
  475. DG-UX fixes from Bruce Nagel of Data General.
  476. IRIX64 updates from Mark Levinson of the University of
  477. Rochester Medical Center.
  478. Altos System V (``the first UNIX/XENIX merge the Altos
  479. did for their Series 1000 & Series 2000 line;
  480. their merged code was licensed back to AT&T and
  481. Microsoft and became System V release 3.2'') from
  482. Tim Rice <timr@crl.com>.
  483. OSF/1 running on Intel Paragon from Jeff A. Earickson
  484. <jeff@ssd.intel.com> of Intel Scalable Systems
  485. Division.
  486. Amdahl UTS System V 2.1.5 (SVr3-based) from Janet Jackson
  487. <janet@dialix.oz.au>.
  488. System V Release 4 (statvfs semantic fix) from Alain
  489. Durand of I.M.A.G.
  490. HP-UX 10.x multiprocessor load average changes from
  491. Scott Hutton and Jeff Sumler of Indiana University.
  492. Cray CSOS from Scott Bolte of Cray Computer Corporation.
  493. Unicos 8.0 from Douglas K. Rand of the University of North
  494. Dakota, Scientific Computing Center.
  495. Solaris 2.4 fixes from Sanjay Dani of Dani Communications.
  496. ConvexOS 11.0 from Christophe Wolfhugel.
  497. IRIX 4.0.5 from David Ashton-Reader of CADcentre.
  498. ISC UNIX from J. J. Bailey.
  499. HP-UX 9.xx on the 8xx series machines from Remy Giraud
  500. of Meteo France.
  501. HP-UX configuration from Tom Lane <tgl@sss.pgh.pa.us>.
  502. IRIX 5.2 and 5.3 from Kari E. Hurtta.
  503. FreeBSD 2.0 from Mike Hickey of Federal Data Corporation.
  504. Sony NEWS-OS 4.2.1R and 6.0.3 from Motonori Nakamura.
  505. Omron LUNA unios-b, mach from Motonori Nakamura.
  506. NEC EWS-UX/V 4.2 from Motonori Nakamura.
  507. NeXT 2.1 from Bryan Costales.
  508. AUX patch thanks to Mike Erwin of Apple Computer.
  509. HP-UX 10.0 from John Beck of Hewlett-Packard.
  510. Ultrix: allow -DBROKEN_RES_SEARCH=0 if you are using a
  511. non-DEC resolver.  Suggested by Allan Johannesen.
  512. UnixWare 2.0 fixes from Petr Lampa of the Technical
  513. University of Brno (Czech Republic).
  514. KSR OS 1.2.2 support from Todd Miller of the University
  515. of Colorado.
  516. UX4800 support from Kazuhisa Shimizu of NEC.
  517. MAKEMAP: allow -d flag to allow insertion of duplicate aliases
  518. in type ``btree'' maps.  The semantics of this are undefined
  519. for regular maps, but it can be useful for the user database.
  520. MAKEMAP: lock database file while rebuilding to avoid sendmail
  521. lookups while the rebuild is going on.  There is a race
  522. condition between the open(... O_TRUNC ...) and the lock
  523. on the file, but it should be quite small.
  524. SMRSH: sendmail restricted shell added to the release.  This can
  525. be used as an alternative to /bin/sh for the "prog" mailer,
  526. giving the local administrator more control over what
  527. programs can be run from sendmail.
  528. MAIL.LOCAL: add this local mailer to the tape.  It is not really
  529. part of the release proper, and isn't fully supported; in
  530. particular, it does not run on System V based systems and
  531. never will.
  532. CONTRIB: a patch to rmail.c from Bill Gianopoulos of Raytheon
  533. to allow rmail to compile on systems that don't have
  534. function prototypes and systems that don't have snprintf.
  535. CONTRIB: add the "mailprio" scripts that will help you sort mailing
  536. lists by transaction delay times so that addresses that
  537. respond quickly get sent first.  This is to prevent very
  538. sluggish servers from delaying other peoples' mail.
  539. Contributed by Tony Sanders of BSDI.
  540. CONTRIB: add the "bsdi.mc" file as contributed by Tony Sanders
  541. of BSDI.  This has a lot of comments to help people out.
  542. CONFIG: Don't have .mc files include(../m4/cf.m4) -- instead,
  543. put this on the m4 command line.  On GNU m4 (which
  544. supports the __file__ primitive) you can run m4 in an
  545. arbitrary directory -- use either:
  546. m4 ${CFDIR}/m4/cf.m4 config.mc > config.cf
  547. or
  548. m4 -I${CFDIR} m4/cf.m4 config.mc > config.cf
  549. On other versions of m4 that don't support __file__, you
  550. can use:
  551. m4 -D_CF_DIR_=${CFDIR}/ ${CFDIR}/m4/cf.m4 ...
  552. (Note the trailing slash on the _CF_DIR_ definition.)
  553. Old versions of m4 will default to _CF_DIR_=.. for back
  554. compatibility.
  555. CONFIG: fix mail from <> so it will properly convert to
  556. MAILER-DAEMON on local addresses.
  557. CONFIG: fix code that was supposed to catch colons in host
  558. names.  Problem noted by John Gardiner Myers of CMU.
  559. CONFIG: allow use of SMTP_MAILER_MAX in nullclient configuration.
  560. From Paul Riddle of the University of Maryland, Baltimore
  561. County.
  562. CONFIG: Catch and reject "." as a host address.
  563. CONFIG: Generalize domaintable to look up all domains, not
  564. just unqualified ones.
  565. CONFIG: Delete OLD_SENDMAIL support -- as near as I can tell, it
  566. was never used and didn't work anyway.
  567. CONFIG: Set flags A, w, 5, :, /, |, and @ on the "local" mailer
  568. and d on all mailers in the UUCP class.
  569. CONFIG: Allow "user+detail" to be aliased specially: it will first
  570. look for an alias for "user+detail", then for "user+*", and
  571. finally for "user".  This is intended for forwarding mail
  572. for system aliases such as root and postmaster to a
  573. centralized hub.
  574. CONFIG: add confEIGHT_BIT_HANDLING to set option 8 (see above).
  575. CONFIG: add smtp8 mailer; this has the F=8 (just-send-8) flag set.
  576. The F=8 flag is also set on the "relay" mailer, since
  577. this is expected to be another sendmail.
  578. CONFIG: avoid qualifying all UUCP addresses sent via SMTP with
  579. the name of the UUCP_RELAY -- in some cases, this is the
  580. wrong value (e.g., when we have local UUCP connections),
  581. and this can create unreplyable addresses.  From Chip
  582. Rosenthal of Unicom.
  583. CONFIG: add confRECEIVED_HEADER to change the format of the
  584. Received: header inserted into all messages.  Suggested by
  585. Gary Mills of the University of Manitoba.
  586. CONFIG: Make "notsticky" the default; use FEATURE(stickyhost)
  587. to get the old behavior.  I did this upon observing
  588. that almost everyone needed this feature, and that the
  589. concept I was trying to make happen didn't work with
  590. some user agents anyway.  FEATURE(notsticky) still works,
  591. but it is a no-op.
  592. CONFIG: Add LUSER_RELAY -- the host to which unrecognized user
  593. names are sent, rather than immediately diagnosing them
  594. as User Unknown.
  595. CONFIG: Add SMTP_MAILER_ARGS, ESMTP_MAILER_ARGS, SMTP8_MAILER_ARGS,
  596. and RELAY_MAILER_ARGS to set the arguments for the
  597. indicated mailers.  All default to "IPC $h".  Patch from
  598. Larry Parmelee of Cornell University.
  599. CONFIG: pop mailer needs F=n flag to avoid "annoying side effects
  600. on the client side" and F=P to get an appropriate
  601. return-path.  From Kimmo Suominen.
  602. CONFIG: add FEATURE(local_procmail) to use the procmail program
  603. as the local mailer.  For addresses of the form "user+detail"
  604. the "detail" part is passed to procmail via the -a flag.
  605. Contributed by Kimmo Suominen.
  606. CONFIG: add MAILER(procmail) to add an interface to procmail for
  607. use from mailertables.  This lets you execute arbitrary
  608. procmail scripts.  Contributed by Kimmo Suominen.
  609. CONFIG: add T= fields (MTS type) to local, smtp, and uucp mailers.
  610. CONFIG: add OSTYPE(ptx2) for DYNIX/ptx 2.x from Sequent.  From
  611. Paul Southworth of CICNet Systems Support.
  612. CONFIG: use -a$g as default to UUCP mailers, instead of -a$f.
  613. This causes the null return path to be rewritten as
  614. MAILER-DAEMON; otherwise UUCP gets horribly confused.
  615. From Michael Hohmuth of Technische Universitat Dresden.
  616. CONFIG: Add FEATURE(bestmx_is_local) to cause any hosts that
  617. list us as the best possible MX record to be treated as
  618. though they were local (essentially, assume that they
  619. are included in $=w).  This can cause additional DNS
  620. traffic, but is easier to administer if this fits your
  621. local model.  It does not work reliably if there are
  622. multiple hosts that share the best MX preference.
  623. Code contributed by John Oleynick of Rutgers.
  624. CONFIG: Add FEATURE(smrsh) to use smrsh (the SendMail Restricted
  625. SHell) instead of /bin/sh as the program used for delivery
  626. to programs.  If an argument is included, it is used as
  627. the path to smrsh; otherwise, /usr/local/etc/smrsh is
  628. assumed.
  629. CONFIG: Add LOCAL_MAILER_MAX and PROCMAILER_MAILER_MAX to limit the
  630. size of messages to the local and procmail mailers
  631. respectively.  Contributed by Brad Knowles of the Defense
  632. Information Systems Agency.
  633. CONFIG: Handle leading ``phrase:'' and trailing ``;'' as comments
  634. (just like text outside of angle brackets) in order to
  635. properly deal with ``group: addr1, ... addrN;'' syntax.
  636. CONFIG: Require OSTYPE macro (the defaults really don't apply to
  637. any real systems any more) and tweak the DOMAIN macro
  638. so that it is less likely that users will accidentally use
  639. the Berkeley defaults.  Also, create some generic files
  640. that really can be used in the real world.
  641. CONFIG: Add new configuration macros to set character sets for
  642. messages _arriving from_ various mailers: LOCAL_MAILER_CHARSET,
  643. SMTP_MAILER_CHARSET, and UUCP_MAILER_CHARSET.
  644. CONFIG: Change UUCP_MAX_SIZE to UUCP_MAILER_MAX for consistency.
  645. The old name will still be accepted for a while at least.
  646. CONFIG: Implement DECNET_RELAY as spec for host to which DECNET
  647. mail (.DECNET pseudo-domain or node::user) will be sent.
  648. As with all relays, it can be ``mailer:hostname''.  Suggested
  649. by Scott Hutton.
  650. CONFIG: Add MAILER(mail11) to get DECnet support.  Code contributed
  651. by Barb Dijker of Labyrinth Computer Services.
  652. CONFIG: change confCHECK_ALIASES to default to False -- it has poor
  653. performance for large alias files, and this confused many
  654. people.
  655. CONFIG: Add confCF_VERSION to append local information to the
  656. configuration version number displayed during SMTP startup.
  657. CONFIG: fix some.newsgroup.usenet@local.host syntax (previously it
  658. would only work when locally addressed.  Fix from
  659. Edvard Tuinder of Cistron Internet Services.
  660. CONFIG: use ${opMode} to avoid error on .REDIRECT addresses if option
  661. "n" (CheckAliases) is set when rebuilding alias database.
  662. Based on code contributed by Claude Marinier.
  663. CONFIG: Allow mailertable to have values of the form
  664. ``error:code message''.  The ``code'' is a status code
  665. derived from the sysexits codes -- e.g., NOHOST or UNAVAILABLE.
  666. Contributed by David James <dwj@agw.bt.co.uk>.
  667. CONFIG: add MASQUERADE_DOMAIN(domain list) to extend the list of
  668. sender domains that will be replaced with the masquerade name.
  669. These domains will not be treated as local, but if mail passes
  670. through with sender addresses in those domains they will be
  671. replaced by the masquerade name.  These can also be specified
  672. in a file using MASQUERADE_DOMAIN_FILE(filename).
  673. CONFIG: add FEATURE(masquerade_envelope) to masquerade the envelope
  674. as well as the header.  Substantial improvements to this
  675. code were contributed by Per Hedeland.
  676. CONFIG: add MAILER(phquery) to define a new "ph" mailer; this can be
  677. accessed from a mailertable to do CCSO ph lookups.  Contributed
  678. by Kimmo Suominen.
  679. CONFIG: add MAILER(cyrus) to define a new Cyrus mailer; this can be
  680. used to define cyrus and cyrusbb mailers (for IMAP support).
  681. Contributed by John Gardiner Myers of Carnegie Mellon.
  682. CONFIG: add confUUCP_MAILER to select default mailer to use for
  683. UUCP addressing.  Suggested by Tom Moore of AT&T GIS.
  684. NEW FILES:
  685. cf/cf/cs-hpux10.mc
  686. cf/cf/cs-solaris2.mc
  687. cf/cf/cyrusproto.mc
  688. cf/cf/generic-bsd4.4.mc
  689. cf/cf/generic-hpux10.mc
  690. cf/cf/generic-hpux9.mc
  691. cf/cf/generic-osf1.mc
  692. cf/cf/generic-solaris2.mc
  693. cf/cf/generic-sunos4.1.mc
  694. cf/cf/generic-ultrix4.mc
  695. cf/cf/huginn.cs.mc
  696. cf/domain/berkeley-only.m4
  697. cf/domain/generic.m4
  698. cf/feature/bestmx_is_local.m4
  699. cf/feature/local_procmail.m4
  700. cf/feature/masquerade_envelope.m4
  701. cf/feature/smrsh.m4
  702. cf/feature/stickyhost.m4
  703. cf/feature/use_ct_file.m4
  704. cf/m4/cfhead.m4
  705. cf/mailer/cyrus.m4
  706. cf/mailer/mail11.m4
  707. cf/mailer/phquery.m4
  708. cf/mailer/procmail.m4
  709. cf/ostype/amdahl-uts.m4
  710. cf/ostype/bsdi2.0.m4
  711. cf/ostype/hpux10.m4
  712. cf/ostype/irix5.m4
  713. cf/ostype/isc4.1.m4
  714. cf/ostype/ptx2.m4
  715. cf/ostype/unknown.m4
  716. contrib/bsdi.mc
  717. contrib/mailprio
  718. contrib/rmail.oldsys.patch
  719. mail.local/mail.local.0
  720. makemap/makemap.0
  721. smrsh/README
  722. smrsh/smrsh.0
  723. smrsh/smrsh.8
  724. smrsh/smrsh.c
  725. src/Makefiles/Makefile.CSOS
  726. src/Makefiles/Makefile.EWS-UX_V
  727. src/Makefiles/Makefile.HP-UX.10
  728. src/Makefiles/Makefile.IRIX.5.x
  729. src/Makefiles/Makefile.IRIX64
  730. src/Makefiles/Makefile.ISC
  731. src/Makefiles/Makefile.KSR
  732. src/Makefiles/Makefile.NEWS-OS.4.x
  733. src/Makefiles/Makefile.NEWS-OS.6.x
  734. src/Makefiles/Makefile.NEXTSTEP
  735. src/Makefiles/Makefile.NonStop-UX
  736. src/Makefiles/Makefile.Paragon
  737. src/Makefiles/Makefile.SCO.3.2v4.2
  738. src/Makefiles/Makefile.SunOS.5.3
  739. src/Makefiles/Makefile.SunOS.5.4
  740. src/Makefiles/Makefile.SunOS.5.5
  741. src/Makefiles/Makefile.UNIX_SV.4.x.i386
  742. src/Makefiles/Makefile.uts.systemV
  743. src/Makefiles/Makefile.UX4800
  744. src/aliases.0
  745. src/mailq.0
  746. src/mime.c
  747. src/newaliases.0
  748. src/sendmail.0
  749. test/t_seteuid.c
  750. RENAMED FILES:
  751. cf/cf/alpha.mc => cf/cf/s2k-osf1.mc
  752. cf/cf/chez.mc => cf/cf/chez.cs.mc
  753. cf/cf/hpux-cs-exposed.mc => cf/cf/cs-hpux9.mc
  754. cf/cf/osf1-cs-exposed.mc => cf/cf/cs-osf1.mc
  755. cf/cf/s2k.mc => cf/cf/s2k-ultrix4.mc
  756. cf/cf/sunos4.1-cs-exposed.mc => cf/cf/cs-sunos4.1.mc
  757. cf/cf/ultrix4.1-cs-exposed.mc => cf/cf/cs-ultrix4.mc
  758. cf/cf/vangogh.mc => cf/cf/vangogh.cs.mc
  759. cf/domain/Berkeley.m4 => cf/domain/Berkeley.EDU.m4
  760. cf/domain/cs-exposed.m4 => cf/domain/CS.Berkeley.EDU.m4
  761. cf/domain/eecs-hidden.m4 => cf/domain/EECS.Berkeley.EDU.m4
  762. cf/domain/s2k.m4 => cf/domain/S2K.Berkeley.EDU.m4
  763. cf/ostype/hpux.m4 => cf/ostype/hpux9.m4
  764. cf/ostype/irix.m4 => cf/ostype/irix4.m4
  765. cf/ostype/ultrix4.1.m4 => cf/ostype/ultrix4.m4
  766. src/Makefile.* => src/Makefiles/Makefile.*
  767. src/Makefile.AUX => src/Makefiles/Makefile.A-UX
  768. src/Makefile.BSDI => src/Makefiles/Makefile.BSD-OS
  769. src/Makefile.DGUX => src/Makefiles/Makefile.dgux
  770. src/Makefile.RISCos => src/Makefiles/Makefile.UMIPS
  771. src/Makefile.SunOS.4.0.3 => src/Makefiles/Makefile.SunOS.4.0
  772. OBSOLETED FILES:
  773. cf/cf/cogsci.mc
  774. cf/cf/cs-exposed.mc
  775. cf/cf/cs-hidden.mc
  776. cf/cf/hpux-cs-hidden.mc
  777. cf/cf/knecht.mc
  778. cf/cf/osf1-cs-hidden.mc
  779. cf/cf/sunos3.5-cs-exposed.mc
  780. cf/cf/sunos3.5-cs-hidden.mc
  781. cf/cf/sunos4.1-cs-hidden.mc
  782. cf/cf/ultrix4.1-cs-hidden.mc
  783. cf/domain/cs-hidden.m4
  784. contrib/rcpt-streaming
  785. src/Makefiles/Makefile.SunOS.5.x
  786. 8.6.13/8.6.12 1996/01/25
  787. SECURITY: In some cases it was still possible for an attacker to
  788. insert newlines into a queue file, thus allowing access to
  789. any user (except root).
  790. CONFIG: no changes -- it is not a bug that the configuration
  791. version number is unchanged.
  792. 8.6.12/8.6.12 1995/03/28
  793. Fix to IDENT code (it was getting the size of the reply buffer
  794. too small, so nothing was ever accepted).  Fix from several
  795. people, including Allan Johannesen, Shane Castle of the
  796. Boulder County Information Services, and Jeff Smith of
  797. Warwick University (all arrived within a few hours of
  798. each other!).
  799. Fix a problem that could cause large jobs to run out of
  800. file descriptors on systems that use vfork() rather
  801. than fork().
  802. 8.6.11/8.6.11 1995/03/08
  803. The ``possible attack'' message would be logged more often
  804. than necessary if you are using Pine as a user agent.
  805. The wrong host would be reported in the ``possible attack''
  806. message when attempted from IDENT.
  807. In some cases the syslog buffer could be overflowed when
  808. reporting the ``possible attack'' message.  This can
  809. cause denial of service attacks.  Truncate the message
  810. to 80 characters to prevent this problem.
  811. When reading the IDENT response a loop is needed around the
  812. read from the network to ensure that you don't get
  813. partial lines.
  814. Password entries without any shell listed (that is, a null
  815. shell) wouldn't match as "ok".  Problem noted by
  816. Rob McMahon.
  817. When running BIND 4.9.x a problem could occur because the
  818. _res.options field is initialized differently than it
  819. was historically -- this requires that sendmail call
  820. res_init before it tweaks any bits.
  821. Fix an incompatibility in openxscript() between the file open mode
  822. and the stdio mode passed to fdopen.  This caused UnixWare
  823. 2.0 to have conniptions.  Fix from Martin Sohnius of
  824. Novell Labs Europe.
  825. Fix problem with static linking of local getopt routine when
  826. using GNU's ld command.  Fix from John Kennedy of
  827. Cal State Chico.
  828. It was possible to turn off privacy flags.  Problem noted by
  829. *Hobbit*.
  830. Be more paranoid about writing files.  Suggestions by *Hobbit*
  831. and Liudvikas Bukys.
  832. MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular)
  833. from Spider Boardman.
  834. CONFIG: No changes (version number only, to keep it in sync
  835. with the binaries).
  836. 8.6.10/8.6.10 1995/02/10
  837. SECURITY: Diagnose bogus values to some command line flags that
  838. could allow trash to get into headers and qf files.
  839. Validate the name of the user returned by the IDENT protocol.
  840. Some systems that really dislike IDENT send intentionally
  841. bogus information.  Problem pointed out by Michael Bushnell
  842. of the Free Software Foundation.  Has some security
  843. implications.
  844. Fix a problem causing error messages about DNS problems when
  845. the host name contained a percent sign to act oddly
  846. because it was passed as a printf-style format string.
  847. In some cases this could cause core dumps.
  848. Avoid possible buffer overrun in returntosender() if error
  849. message is quite long.  From Fletcher Mattox of the
  850. University of Texas.
  851. Fix a problem that would silently drop "too many hops" error
  852. messages if and only if you were sending to an alias.
  853. From Jon Giltner of the University of Colorado and
  854. Dan Harton of Oak Ridge National Laboratory.
  855. Fix a bug that caused core dumps on some systems if -d11.2 was
  856. set and e->e_message was null.  Fix from Bruce Nagel of
  857. Data General.
  858. Fix problem that can still cause df files to be left around
  859. after "hop count exceeded" messages.  Fix from Andrew
  860. Chang and Shau-Ping Lo of SunSoft.
  861. Fix a problem that can cause buffer overflows on very long
  862. user names (as might occur if you piped to a program
  863. with a lot of arguments).
  864. Avoid returning an error and re-queueing if the host signature
  865. is null; this can occur on addresses like ``user@.''.
  866. Problem noted by Wesley Craig and the University of
  867. Michigan.
  868. Avoid possible calls to malloc(0) if MCI caching is turned
  869. off.  Bug fix from Pierre David of the Laboratoire
  870. Parallelisme, Reseaux, Systemes et Modelisation (PRiSM),
  871. Universite de Versailles - St Quentin, and Jacky
  872. Thibault.
  873. Make a local copy of the line being sent via senttolist() -- in
  874. some cases, buffers could get trashed by map lookups
  875. causing it to do unexpected things.  This also simplifies
  876. some of the map code.
  877. CONFIG: No changes (version number only, to keep it in sync
  878. with the binaries).
  879. 8.6.9/8.6.9 1994/04/19
  880. Do all mail delivery completely disconnected from any terminal.
  881. This provides consistency with daemon delivery and
  882. may have some security implications.
  883. Make sure that malloc doesn't get called with zero size,
  884. since that fails on some systems.  Reported by Ed
  885. Hill of the University of Iowa.
  886. Fix multi-line values for $e (SMTP greeting message).  Reported
  887. by Mike O'Connor of Ford Motor Company.
  888. Avoid syserr if no NIS domain name is defined, but the map it
  889. is trying to open is optional.  From Win Bent of USC.
  890. Changes for picky compilers from Ed Gould of Digital Equipment.
  891. Hesiod support for UDB from Todd Miller of the University of
  892. Colorado.  Use "hesiod" as the service name in the U
  893. option.
  894. Fix a problem that failed to set the "authentic" host name (that
  895. is, the one derived from the socket info) if you called
  896. sendmail -bs from inetd.  Based on code contributed by
  897. Todd Miller (this problem was also reported by Guy Helmer
  898. of Dakota State University).  This also fixes a related
  899. problem reported by Liudvikas Bukys of the University of
  900. Rochester.
  901. Parameterize "nroff -h" in all the Makefiles so people with
  902. variant versions can use them easily.  Suggested by
  903. Peter Collinson of Hillside Systems.
  904. SMTP "MAIL" commands with multiple ESMTP parameters required two
  905. spaces between parameters instead of one.  Reported by
  906. Valdis Kletnieks of Virginia Tech.
  907. Reduce the number of system calls during message collection by
  908. using global timeouts around the collect() loop.  This
  909. code was contributed by Eric Wassenaar.
  910. If the initial hostname name gathering results in a name
  911. without a dot (usually caused by NIS misconfiguration)
  912. and BIND is compiled in, directly access DNS to get
  913. the canonical name.  This should make life easier for
  914. Solaris systems.  If it still can't be resolved, and
  915. if the name server is listed as "required", try again
  916. in 30 seconds.  If that also fails, exit immediately to
  917. avoid bogus "config error: mail loops back to myself"
  918. messages.
  919. Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error
  920. message to explain how much space was available and
  921. sound a bit less threatening.  Suggested by Stan Janet
  922. of the National Institute of Standards and Technology.
  923. If mail is delivered to an alias that has an owner, deliver any
  924. requested return-receipt immediately, and strip the
  925. Return-Receipt-To: header from the subsequent message.
  926. This prevents a certain class of denial of service
  927. attack, arguably gives more reasonable semantics, and
  928. moves things more towards what will probably become a
  929. network standard.  Suggested by Christopher Davis of
  930. Kapor Enterprises.
  931. Add a "noreceipts" privacy flag to turn off all return receipts
  932. without recompiling.
  933. Avoid printing ESMTP parameters as part of the error message
  934. if there are errors during parsing.  This change is
  935. purely cosmetic.
  936. Avoid sending out error messages during the collect phase of
  937. SMTP; there is an MVS mailer from UCLA that gets
  938. confused by this.  Of course, I think it's their bug....
  939. Check for the $j macro getting undefined, losing a dot, or getting
  940. lost from $=w in the daemon before accepting a connection;
  941. if it is, it dumps state, prints a LOG_ALERT message,
  942. and drops core for debugging.  This is an attempt to
  943. track down a bug that I thought was long since gone.
  944. If you see this, please forward the log fragment to
  945. sendmail@sendmail.ORG.
  946. Change OLD_NEWDB from a #ifdef to a #if so it can be turned off
  947. with -DOLD_NEWDB=0 on the command line.  From Christophe
  948. Wolfhugel.
  949. Instead of trying to truncate the listen queue for the server
  950. SMTP port when the load average is too high, just close
  951. the port completely and reopen it later as needed.
  952. This ensures that the other end gets a quick "connection
  953. refused" response, and that the connection can be
  954. recovered later.  In particular, some socket emulations
  955. seem to get confused if you tweak the listen queue
  956. size around and can never start listening to connections
  957. again.  The down side is that someone could start up
  958. another daemon process in the interim, so you could
  959. have multiple daemons all not listening to connections;
  960. this could in turn cause the sendmail.pid file to be
  961. incorrect.  A better approach might be to accept the
  962. connection and give a 421 code, but that could break
  963. other mailers in mysterious ways and have paging behavior
  964. implications.
  965. Fix a glitch in TCP-level debugging that caused flag 16.101 to
  966. set debugging on the wrong socket.  From Eric Wassenaar.
  967. When creating a df* temporary file, be sure you truncate any
  968. existing data in the file -- otherwise system crashes
  969. and the like could result in extra data being sent.
  970. DOC: Replace the CHANGES-R5-R8 readme file with a paper in the
  971. doc directory.  This includes some additional
  972. information.
  973. CONFIG: change UUCP rules to never add $U! or $k! on the front
  974. of recipient envelope addresses.  This should have been
  975. handled by the $&h trick, but broke if people were
  976. mixing domainized and UUCP addresses.  They should
  977. probably have converted all the way over to uucp-uudom
  978. instead of uucp-{new,old}, but the failure mode was to
  979. loop the mail, which was bad news.
  980. Portability fixes:
  981. Newer BSDI systems (several people).
  982. Older BSDI systems from Christophe Wolfhugel.
  983. Intergraph CLIX, from Paul Southworth of CICNet.
  984. UnixWare, from Evan Champion.
  985. NetBSD from Adam Glass.
  986. Solaris from Quentin Campbell of the University of
  987. Newcastle upon Tyne.
  988. IRIX from Dean Cookson and Bill Driscoll of Mitre
  989. Corporation.
  990. NCR 3000 from Kevin Darcy of Chrysler Financial Corporation.
  991. SunOS (it has setsid() and setvbuf() calls) from
  992. Jonathan Kamens of OpenVision Technologies.
  993. HP-UX from Tor Lillqvist.
  994. New Files:
  995. src/Makefile.CLIX
  996. src/Makefile.NCR3000
  997. doc/changes/Makefile
  998. doc/changes/changes.me
  999. doc/changes/changes.ps
  1000. 8.6.8/8.6.6 1994/03/21
  1001. SECURITY: it was possible to read any file as root using the
  1002. E (error message) option.  Reported by Richard Jones;
  1003. fixed by Michael Corrigan and Christophe Wolfhugel.
  1004. 8.6.7/8.6.6 1994/03/14
  1005. SECURITY: it was possible to get root access by using weird
  1006. values to the -d flag.  Thanks to Alain Durand of
  1007. INRIA for forwarding me the notice from the bugtraq
  1008. list.
  1009. 8.6.6/8.6.6 1994/03/13
  1010. SECURITY: the ability to give files away on System V-based
  1011. systems proved dangerous -- don't run as the owner
  1012. of a :include: file on a system that allows giveaways.
  1013. Unfortunately, this also applies to determining a
  1014. valid shell.
  1015. IMPORTANT: Previous versions weren't expiring old connections
  1016. in the connection cache for a long time under some
  1017. circumstances.  This could result in resource exhaustion,
  1018. both at your end and at the other end.  This checks the
  1019. connections for timeouts much more frequently.  From
  1020. Doug Anderson of NCSC.
  1021. Fix a glitch that snuck in that caused programs to be run as
  1022. the sender instead of the recipient if the mail was
  1023. from a local user to another local user.  From
  1024. Motonori Nakamura of Kyoto University.
  1025. Fix "wildcard" on /etc/shells matching -- instead of looking
  1026. for "*", look for "/SENDMAIL/ANY/SHELL/".  From
  1027. Bryan Costales of ICSI.
  1028. Change the method used to declare the "statfs" availability;
  1029. instead of HASSTATFS and/or HASUSTAT with a ton of
  1030. tweaking in conf.c, there is a single #define called
  1031. SFS_TYPE which takes on one of six values (SFS_NONE
  1032. for no statfs availability, SFS_USTAT for the ustat(2)
  1033. syscall, SFS_4ARGS for a four argument statfs(2) call,
  1034. and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument
  1035. statfs(2) call with the declarations in <sys/vfs.h>,
  1036. <sys/mount.h>, or <sys/statfs.h> respectively).
  1037. Fix glitch in NetInfo support that could return garbage if
  1038. there was no "/locations/sendmail" property.  From
  1039. David Meyer of the University of Virginia.
  1040. Change HASFLOCK from defined/not-defined to a 0/1 definition
  1041. to allow Linux to turn it off even though it is a
  1042. BSD-like system.
  1043. Allow setting of "ident" timeout to zero to turn off the ident
  1044. protocol entirely.
  1045. Make 7-bit stripping local to a connection (instead of to a
  1046. mailer); this allows you to specify that SMTP is a
  1047. 7-bit channel, but revert to 8-bit should it advertise
  1048. that it supports 8BITMIME.  You still have to specify
  1049. mailer flag 7 to get this stripping at all.
  1050. Improve makesendmail script so it handles more cases automatically.
  1051. Tighten up restrictions on taking ownership of :include: files
  1052. to avoid problems on systems that allow you to give away
  1053. files.
  1054. Fix a problem that made it impossible to rebuild the alias
  1055. file if it was on a read-only file system.  From
  1056. Harry Edmon of the University of Washington.
  1057. Improve MX randomization function.  From John Gardiner Myers
  1058. of CMU.
  1059. Fix a minor glitch causing a bogus message to be printed (used
  1060. %s instead of %d in a printf string for the line number)
  1061. when a bad queue file was read.  From Harry Edmon.
  1062. Allow $s to remain NULL on locally generated mail.  I'm not
  1063. sure this is necessary, but a lot of people have complained
  1064. about it, and there is a legitimate question as to whether
  1065. "localhost" is legal as an 822-style domain.
  1066. Fix a problem with very short line lengths (mailer L= flag) in
  1067. headers.  This causes a leading space to be added onto
  1068. continuation lines (including in the body!), and also
  1069. tries to wrap headers containing addresses (From:, To:,
  1070. etc) intelligently at the shorter line lengths.  Problem
  1071. Reported by Lars-Johan Liman of SUNET Operations Center.
  1072. Log the real user name when logging syserrs, since these can have
  1073. security implications.  Suggested by several people.
  1074. Fix address logging of cached connections -- it used to always
  1075. log the numeric address as zero.  This is a somewhat
  1076. bogus implementation in that it does an extra system
  1077. call, but it should be an inexpensive one.  Fix from
  1078. Motonori Nakamura.
  1079. Tighten up handling of short syslog buffers even more -- there
  1080. were cases where the outgoing relay= name was too long
  1081. to share a line with delay= and mailer= logging.
  1082. Limit the overhead on split envelopes to one open file descriptor
  1083. per envelope -- previously the overhead was three
  1084. descriptors.  This was in response to a problem reported
  1085. by P{r (Pell) Emanuelsson.
  1086. Fixes to better handle the case of unexpected connection closes;
  1087. this redirects the output to the transcript so the info
  1088. is not lost.  From Eric Wassenaar.
  1089. Fix potential string overrun if you macro evaluate a string that
  1090. has a naked $ at the end.  Problem noted by James Matheson
  1091. <jmrm@eng.cam.ac.uk>.
  1092. Make default error number on $#error messages 553 (``Requested
  1093. action not taken: mailbox name not allowed'') instead of
  1094. 501 (``Syntax error in parameters or arguments'') to
  1095. avoid bogus "protocol error" messages.
  1096. Strip off any existing trailing dot on names during $[ ... $]
  1097. lookup.  This prevents it from ending up with two dots
  1098. on the end of dot terminated names.  From Wesley Craig
  1099. of the University of Michigan and Bryan Costales of ICSI.
  1100. Clean up file class reading so that the debugging information is
  1101. more informative.  It hadn't been using setclass, so you
  1102. didn't see the class items being added.
  1103. Avoid core dump if you are running a version of sendmail where
  1104. NIS is compiled in, and you specify an NIS map, but
  1105. NIS is not running.  Fix from John Oleynick of
  1106. Rutgers.
  1107. Diagnose bizarre case where res_search returns a failure value,
  1108. but sets h_errno to a success value.
  1109. Make sure that "too many hops" messages are considered important
  1110. enough to send an error to the Postmaster (that is, the
  1111. address specified in the P option).  This fix should
  1112. help problems that cause the df file to be left around
  1113. sometimes -- unfortunately, I can't seem to reproduce
  1114. the problem myself.
  1115. Avoid core dump (null pointer reference) on EXPN command; this
  1116. only occurred if your log level was set to 10 or higher
  1117. and the target account was an alias or had a .forward file.
  1118. Problem noted by Janne Himanka.
  1119. Avoid "denial of service" attacks by someone who is flooding your
  1120. SMTP port with bad commands by shutting the connection
  1121. after 25 bad commands are issued.  From Kyle Jones of
  1122. UUNET.
  1123. Fix core dump on error messages with very long "to" buffers;
  1124. fmtmsg overflows the message buffer.  Fixed by trimming
  1125. the to address to 203 characters.  Problem reported by
  1126. John Oleynick.
  1127. Fix configuration for HASFLOCK -- there were some spots where
  1128. a #ifndef was incorrectly #ifdef.  Pointed out by
  1129. George Baltz of the University of Maryland.
  1130. Fix a typo in savemail() that could cause the error message To:
  1131. lists to be incorrect in some places.  From Motonori
  1132. Nakamura.
  1133. Fix a glitch that can cause duplicate error messages on split
  1134. envelopes where an address on one of the lists has a
  1135. name server failure.  Fix from Voradesh Yenbut of the
  1136. University of Washington.
  1137. Fix possible bogus pointer reference on ESMTP parameters that
  1138. don't have an ``=value'' part.
  1139. CNAME loops caused an error message to be generated, but also
  1140. re-queued the message.  Changed to just re-queue the
  1141. message (it's really hard to just bounce it because
  1142. of the weird way the name server works in the presence
  1143. of CNAME loops).  Problem noted by James M.R.Matheson
  1144. of Cambridge University.
  1145. Avoid giving ``warning: foo owned process doing -bs'' messages
  1146. if they use ``MAIL FROM:<foo>'' where foo is their true
  1147. user name.  Suggested by Andreas Stolcke of ICSI.
  1148. Change the NAMED_BIND compile flag to be a 0/1 flag so you can
  1149. override it easily in the Makefile -- that is, you can
  1150. turn it off using -DNAMED_BIND=0.
  1151. If a gethostbyname(...) of an address with a trailing dot fails,
  1152. try it without the trailing dot.  This is because if
  1153. you have a version of gethostbyname() that falls back
  1154. to NIS or the /etc/hosts file it will fail to find
  1155. perfectly reasonable names that just don't happen to
  1156. be dot terminated in the hosts file.  You don't want to
  1157. strip the dot first though because we're trying to ensure
  1158. that country names that match one of your subdomains get
  1159. a chance.
  1160. PRALIASES: fix bogus output on non-null-terminated strings.
  1161. From Bill Gianopoulos of Raytheon.
  1162. CONFIG: Avoid rewriting anything that matches $w to be $j.
  1163. This was in code intended to only catch the self-literal
  1164. address (that is, [1.2.3.4], where 1.2.3.4 is your
  1165. IP address), but the code was broken.  However, it will
  1166. still do this if $M is defined; this is necessary to
  1167. get client configurations to work (sigh).  Note that this
  1168. means that $M overrides :mailname entries in the user
  1169. database!  Problem noted by Paul Southworth.
  1170. CONFIG: Fix definition of Solaris help file location.  From
  1171. Steve Cliffe <steve@gorgon.cs.uow.edu.au>.
  1172. CONFIG: Fix bug that broke news.group.USENET mappings.
  1173. CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX,
  1174. and USENET_MAILER_MAX to tweak the maximum message
  1175. size for various mailers.
  1176. CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0]
  1177. instead of assuming that it is "inews" for consistency
  1178. with other mailers.  From Michael Corrigan of UC San Diego.
  1179. CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB,
  1180. qualify the address in the SMTP envelope as user@{relay|hub}
  1181. instead of user@$j.  From Bill Wisner of The Well.
  1182. CONFIG: Fix route-addr syntax in nullrelay configuration set.
  1183. CONFIG: Don't turn off case mapping of user names in the local
  1184. mailer for IRIX.  This was different than most every other
  1185. system.
  1186. CONFIG: Avoid infinite loops on certainly list:; syntaxes in
  1187. envelope.  Noted by Thierry Besancon
  1188. <besancon@excalibur.ens.fr>.
  1189. CONFIG: Don't include -z by default on uux line -- most systems
  1190. don't want it set by default.  Pointed out by Philippe
  1191. Michel of Thomson CSF.
  1192. CONFIG: Fix some bugs with mailertables -- for example, if your
  1193. host name was foo.bar.ray.com and you matched against
  1194. ".ray.com", the old implementation bound %1 to "bar"
  1195. instead of "foo.bar".  Also, allow "." in the mailertable
  1196. to match anything -- essentially, take over SMART_HOST.
  1197. This also moves matching of explicit local host names
  1198. before the mailertable so they don't have to be special
  1199. cased in the mailertable data.  Reported by Bill
  1200. Gianopoulos of Raytheon; the fix for the %1 binding
  1201. problem was contributed by Nicholas Comanos of the
  1202. University of Sydney.
  1203. CONFIG: Don't include "root" in class $=L (users to deliver
  1204. locally, even if a hub or relay exists) by default.
  1205. This is because of the known bug where definition of
  1206. both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore
  1207. both and deliver into the local mailbox.
  1208. CONFIG: Move up bitdomain and uudomain handling so that they
  1209. are done before .UUCP class matching; uudomain was
  1210. reported as ineffective before.  This also frees up
  1211. diversion 8 for future use.  Problem reported by Kimmo
  1212. Suominen.
  1213. CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4])
  1214. into host names.  As pointed out by Jonathan Kamens,
  1215. these are often used because either the forward or reverse
  1216. mapping is broken; this translation makes it broken again.
  1217. DOC: Clarify $@ and $: in the Install & Op Guide.  From Kimmo
  1218. Suominen.
  1219. Portability fixes:
  1220. Unicos from David L. Kensiski of Sterling Software.
  1221. DomainOS from Don Lewis of Silicon Systems.
  1222. GNU m4 1.0.3 from Karst Koymans of Utrecht University.
  1223. Convex from Kimmo Suominen <kim@tac.nyc.ny.us>.
  1224. NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>.
  1225. BSD/386 from Tony Sanders of BSDI.
  1226. Apollo from Eric Wassenaar.
  1227. DGUX from Doug Anderson.
  1228. Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent.
  1229. NEW FILES:
  1230. src/Makefile.DomainOS
  1231. src/Makefile.PTX
  1232. src/Makefile.SunOS.5.1
  1233. src/Makefile.SunOS.5.2
  1234. src/Makefile.SunOS.5.x
  1235. src/mailq.1
  1236. cf/ostype/domainos.m4
  1237. doc/op/Makefile
  1238. doc/intro/Makefile
  1239. doc/usenix/Makefile
  1240. 8.6.5/8.6.5 1994/01/13
  1241. Security fix:  /.forward could be owned by anyone (the test
  1242. to allow root to own any file was backwards).  From
  1243. Bob Campbell at U.C. Berkeley.
  1244. Security fix: group ids were not completely set when programs
  1245. were invoked.  This caused programs to have group
  1246. permissions they should not have had (usually group
  1247. daemon instead of their own group).  In particular,
  1248. Perl scripts would refuse to run.
  1249. Security: check to make sure files that are written are not
  1250. symbolic links (at least under some circumstances).
  1251. Although this does not respond to a specific known
  1252. attack, it's just a good idea.  Suggested by
  1253. Christian Wettergren.
  1254. Security fix: if a user had an NFS mounted home directory on
  1255. a system with a restricted shell listed in their
  1256. /etc/passwd entry, they could still execute any
  1257. program by putting that in their .forward file.
  1258. This fix prevents that by insisting that their shell
  1259. appear in /etc/shells before allowing a .forward to
  1260. execute a program or write a file.  You can disable
  1261. this by putting "*" in /etc/shells.  It also won't
  1262. permit world-writable :include: files to reference
  1263. programs or files (there's no way to disable this).
  1264. These behaviors are only one level deep -- for
  1265. example, it is legal for a world-writable :include:
  1266. file to reference an alias that writes a file, on
  1267. the assumption that the alias file is well controlled.
  1268. Security fix: root was not treated suspiciously enough when
  1269. looking into subdirectories.  This would potentially
  1270. allow a cracker to examine files that were publicly
  1271. readable but in a non-publicly searchable directory.
  1272. Fix a problem that causes an error on QUIT on a cached
  1273. connection to create problems on the current job.
  1274. These are typically unrelated, so errors occur in
  1275. the wrong place.
  1276. Reset CurrentLA in sendall() -- this makes sendmail queue
  1277. runs more responsive to load average, and fixes a
  1278. problem that ignored the load average in locally
  1279. generated mail.  From Eric Wassenaar.
  1280. Fix possible core dump on aliases with null LHS.  From
  1281. John Orthoefer of BB&N.
  1282. Revert to using flock() whenever possible -- there are just
  1283. too many bugs in fcntl() locking, particularly over
  1284. NFS, that cause sendmail to fail in perverse ways.
  1285. Fix a bug that causes the connection cache to get confused
  1286. when sending error messages.  This resulted in
  1287. "unexpected close" messages.  It should fix itself
  1288. on the following queue run.  Problem noted by
  1289. Liudvikas Bukys of the University of Rochester.
  1290. Include $k in $=k as documented in the Install & Op Guide.
  1291. This seems odd, but it was documented....  From
  1292. Michael Corrigan of UCSD.
  1293. Fix problem that caused :include:s from alias files to be
  1294. forced to be owned by root instead of daemon
  1295. (actually DefUid).  From Tim Irvin.
  1296. Diagnose unrecognized I option values -- from Mortin Forssen
  1297. of the Chalmers University of Technology.
  1298. Make "error" mailer work consistently when there is no error
  1299. code associated with it -- previously it returned OK
  1300. even though there was a real problem.  Now it assumes
  1301. EX_UNAVAILABLE.
  1302. Fix bug that caused the last header line of messages that had
  1303. no body and which were terminated with EOF instead of
  1304. "." to be discarded.  Problem noted by Liudvikas Bukys.
  1305. Fix core dump on SMTP mail to programs that failed -- it tried
  1306. to go to a "next MX host" when none existed, causing
  1307. a core dump.  From der Mouse at McGill University.
  1308. Change IDENTPROTO from a defined/not defined to a 0/1 switch;
  1309. this makes it easier to turn it off (using
  1310. -DIDENTPROTO=0 in the Makefile).  From der Mouse.
  1311. Fix YP_MASTER_NAME store to use the unupdated result of
  1312. gethostname() (instead of myhostname(), which tries
  1313. to fully qualify the name) to be consistent with
  1314. SunOS.  If your hostname is unqualified, this fixes
  1315. transfers to slave servers.  Bug noted by Keith
  1316. McMillan of Ameritech Services, Inc.
  1317. Fix Ultrix problem: gethostbyname() can return a very large
  1318. (> 500) h_length field, which causes the sockaddr
  1319. to be trashed.  Use the size of the sockaddr instead.
  1320. Fix from Bob Manson of Ohio State.
  1321. Don't assume "-a." on host lookups if NAMED_BIND is not
  1322. defined -- this confuses gethostbyname on hosts
  1323. file lookups, which doesn't understand the trailing
  1324. dot convention.
  1325. Log SMTP server subprocesses that die with a signal instead
  1326. of from a clean exit.
  1327. If you don't have option "I" set, don't assume that a DNS
  1328. "host unknown" message is authoritative -- it
  1329. might still be found in /etc/hosts.
  1330. Fix a problem that would cause Deferred: messages to be sent
  1331. as the subject of an error message, even though the
  1332. actual cause of a message was more severe than that.
  1333. Problem noted by Chris Seabrook of OSSI.
  1334. Fix race condition in DBM alias file locking.  From Kyle
  1335. Jones of UUNET.
  1336. Limit delivery syslog line length to avoid bugs in some
  1337. versions of syslog(3).  This adds a new compile time
  1338. variable SYSLOG_BUFSIZE.  From Jay Plett of Princeton
  1339. University, which is in turn derived from IDA.
  1340. Fix quotes inside of comments in addresses -- previously
  1341. it insisted that they be balanced, but the 822 spec
  1342. says that they should be ignored.
  1343. Dump open file state to syslog upon receiving SIGUSR1 (for
  1344. debugging).  This also evaluates ruleset 89, if set
  1345. (with the null input), and logs the result.  This
  1346. should be used sparingly, since the rewrite process
  1347. is not reentrant.
  1348. Change -qI, -qR, and -qS flags to be case-insensitive as
  1349. documented in the Bat Book.
  1350. If the mailer returned EX_IOERR or EX_OSERR, sendmail did not
  1351. return an error message and did not requeue the message.
  1352. Fix based on code from Roland Dirlewanger of
  1353. Reseau Regional Aquarel, Bordeaux, France.
  1354. Fix a problem that caused a seg fault if you got a 421 error
  1355. code during some parts of connection initialization.
  1356. I've only seen this when talking to buggy mailers on
  1357. the other end, but it shouldn't give a seg fault in
  1358. any case.  From Amir Plivatsky.
  1359. Fix core dump caused by a ruleset call that returns null.
  1360. Fix from Bryan Costales of ICSI.
  1361. Full-Name: field was being ignored.  Fix from Motonori Nakamura
  1362. of Kyoto University.
  1363. Fix a possible problem with very long input lines in setproctitle.
  1364. From P{r Emanuelsson.
  1365. Avoid putting "This is a warning message" out on return receipts.
  1366. Suggested by Douglas Anderson.
  1367. Detect loops caused by recursive ruleset calls.  Suggested by
  1368. Bryan Costales.
  1369. Initialize non-alias maps during alias rebuilds -- they may be
  1370. needed for parsing.  Problem noted by Douglas Anderson.
  1371. Log sender address even if no message was collected in SMTP
  1372. (e.g., if all RCPTs failed).  Suggested by Motonori
  1373. Nakamura.
  1374. Don't reflect the owner-list contents into the envelope sender
  1375. address if the value contains ", :, /, or | (to avoid
  1376. illegal addresses appearing there).
  1377. Efficiency hack for toktype macro -- from Craig Partridge of
  1378. BB&N.
  1379. Clean up DNS error printing so that a host name is always
  1380. included.
  1381. Remember to set $i during queue runs.  Reported by Stephen
  1382. Campbell of Dartmouth University.
  1383. If the environment variable HOSTALIASES is set, use it during
  1384. canonification as the name of a file with per-user host
  1385. translations so that headers are properly mapped.  Reported
  1386. by Anne Bennett of Concordia University.
  1387. Avoid printing misleading error message if SMTP mailer (not
  1388. using [IPC]) should die on a core dump.
  1389. Avoid incorrect diagnosis of "file 1 closed" when it is caused
  1390. by the other end closing the connection.  From
  1391. Dave Morrison of Oracle.
  1392. Improve several of the error messages printed by "mailq"
  1393. to include a host name or other useful information.
  1394. Add NetInfo preliminary support for NeXT systems.  From Vince
  1395. DeMarco.
  1396. Fix a glitch that sometimes caused :include:s that pointed to
  1397. NFS filesystems that were down to give an "aliasing/
  1398. forwarding loop broken" message instead of queueing
  1399. the message for retry.  Noted by William C Fenner of
  1400. the NRL Connection Machine Facility.
  1401. Fix a problem that could cause a core dump if the input sequence
  1402. had (or somehow acquired) a 231 character.
  1403. Make sure that route-addrs always have <angle brackets> around
  1404. them in non-SMTP envelopes (SMTP envelopes already do
  1405. this properly).
  1406. Avoid weird headers on unbalanced punctuation of the form:
  1407. ``Joe User <user)'' -- this caused reference to the
  1408. null macro.  Fix from Rick McCarty of IO.COM.
  1409. Fix a problem that caused an alias "user: user@local.host" to
  1410. not have the QNOTREMOTE bit set; this caused configs
  1411. to act as if FEATURE(notsticky) was defined even when
  1412. it was not.  The effect of the problem was to make it
  1413. very hard to to set up satellite sites that had a few
  1414. local accounts, with everything else forwarded to a
  1415. corporate hub.  Reported by Detlef Drewanz of the
  1416. University of Rostock and Mark Frost of NCD.
  1417. Change queuing to not call rulesets 3, {1 or 2}, 4 on header
  1418. addresses.  This is more efficient (fewer name server
  1419. calls) and fixes certain unusual configurations, such
  1420. as those that have ruleset 4 do something that is
  1421. non-idempotent unless a mailer-specific ruleset did
  1422. something else.  Problem reported by Brian J. Coan
  1423. of the Institute for Global Communications.
  1424. Fix the "obsolete argument" routine in main to better understand
  1425. new arguments.  For example, if you used ``sendmail
  1426. -C config -v -q'' it would choke on the -q because
  1427. the -C would stop looking for old-format arguments.
  1428. Fix the code that was intended to allow two users to forward their
  1429. mail to the same program and have them appear unique.
  1430. Portability fixes for:
  1431. SCO UNIX from Murray Kucherawy.
  1432. SCO Open Server 3.2v4 from Philippe Brand.
  1433. System V Release 4 from Rick Ellis and others.
  1434. OSF/1 from Steve Campbell.
  1435. DG/UX from Ben Mesander of the USGS and Bryan Curnutt
  1436. of Stoner Associates.
  1437. Motorola SysV88 from Kevin Johnson of Motorola.
  1438. Solaris 2.3 from Casper H.S. Dik of the University
  1439. of Amsterdam and John Caruso of University
  1440. of Maryland.
  1441. FreeBSD from Ollivier Robert.
  1442. NetBSD from Adam Glass.
  1443. TitanOS from Kate Hedstrom of Rutgers University.
  1444. Irix from Bryan Curnutt.
  1445. Dynix from Jim Davis of the University of Arizona.
  1446. RISC/os.
  1447. Linux from John Kennedy of California State University
  1448. at Chico.
  1449. Solaris 2.x from Tony Boner of the U.S. Air Force.
  1450. NEXTSTEP 3.x from Vince DeMarco.
  1451. HP-UX from various people.  NOTA BENE:  the location
  1452. of the config file has moved to /usr/lib
  1453. to match the HP-UX version of sendmail.
  1454. CONFIG: Don't do any recipient rewriting on relay mailer;
  1455. since this is intended only for internal use, the
  1456. usual RFC 821/822/1123 rules can be relaxed.  The
  1457. main point of this is to avoid munging (ugh) UUCP
  1458. addresses when relaying internally.
  1459. CONFIG: fix typo in mailer/uucp.m4 that mutilates list:;
  1460. syntax addresses delivered via UUCP.  Solution
  1461. provided by Peter Wemm.
  1462. CONFIG: fix thumb-fumble in default UUCP relaying in ruleset
  1463. zero; it caused double @ signs in addresses.  From
  1464. Irving Reid of the University of Toronto.
  1465. CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1
  1466. from Markku Toijala of ICL Personal Systems Oy.
  1467. CONFIG: Add trailing "." on pseudo-domains for consistency;
  1468. this fixes a problem (noted by Al Whaley of Sunnyside)
  1469. that made it hard to recognize your own pseudodomain
  1470. names.
  1471. CONFIG: catch "@host" syntax errors (i.e., null local-parts)
  1472. rather than letting them get "local configuration
  1473. error"s.  Problem noted by John Gardiner Myers.
  1474. CONFIG: add uucp-uudom mailer variant, based on code posted
  1475. by Spider Boardman <spider@Orb.Nashua.NH.US>; this
  1476. has uucp-dom semantics but old UUCP syntax.  This
  1477. also permits "uucp-old" as an alias for "uucp" and
  1478. "uucp-new" as a synonym for "suucp" for consistency.
  1479. CONFIG: add POP mailer support (from Kimmo Suominen
  1480. <kim@grendel.lut.fi>).
  1481. CONFIG: drop CSNET_RELAY support -- CSNET is long gone.
  1482. CONFIG: fix bug caused with domain literal addresses (e.g.,
  1483. ``[128.32.131.12]'') when FEATURE(allmasquerade)
  1484. was set; it would get an additional @masquerade.host
  1485. added to the address.  Problem noted by Peter Wan
  1486. of Georgia Tech.
  1487. CONFIG: make sure that the local UUCP name is in $=w.  From
  1488. Jim Murray of Stratus.
  1489. CONFIG: changes to UUCP rewriting to simulate IDA-style "V"
  1490. mailer flag.  Briefly, if you are sending to host
  1491. "foo", then it rewrites "foo!...!baz" to "...!baz",
  1492. "foo!baz" remains "foo!baz", and anything else has
  1493. the local name prepended.
  1494. CONFIG: portability fixes for HP-UX.
  1495. DOC: several minor problems fixed in the Install & Op Guide.
  1496. MAKEMAP: fix core dump problem on lines that are too long or
  1497. which lack newline.  From Mark Delany.
  1498. MAILSTATS: print sums of columns (total messages & kbytes
  1499. in and out of the system).  From Tom Ferrin of UC
  1500. San Francisco Computer Graphics Lab.
  1501. SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES:
  1502. On HP-UX, /etc/sendmail.cf has been moved to
  1503. /usr/lib/sendmail.cf to match HP sendmail.
  1504. Permissions have been tightened up on world-writable
  1505. :include: files and accounts that have shells
  1506. that are not listed in /etc/shells.  This may
  1507. cause some .forward files that have worked
  1508. before to start failing.
  1509. SIGUSR1 dumps some state to the log.
  1510. NEW FILES:
  1511. src/Makefile.DGUX
  1512. src/Makefile.Dynix
  1513. src/Makefile.FreeBSD
  1514. src/Makefile.Mach386
  1515. src/Makefile.NetBSD
  1516. src/Makefile.RISCos
  1517. src/Makefile.SCO
  1518. src/Makefile.SVR4
  1519. src/Makefile.Titan
  1520. cf/mailer/pop.m4
  1521. cf/ostype/bsdi1.0.m4
  1522. cf/ostype/dgux.m4
  1523. cf/ostype/dynix3.2.m4
  1524. cf/ostype/sco3.2.m4
  1525. makemap/Makefile.dist
  1526. praliases/Makefile.dist
  1527. 8.6.4/8.6.4 1993/10/31
  1528. Repair core-dump problem (write to read-only memory segment)
  1529. if you fall back to the return-to-Postmaster case in
  1530. savemail.  Problem reported by Richard Liu.
  1531. Immediately diagnose bogus sender addresses in SMTP.  This
  1532. makes quite certain that crackers can't use this
  1533. class of attack.
  1534. Reliability Fix:  check return value from fclose() and fsync()
  1535. in a few critical places.
  1536. Minor problem in initsys() that reversed a condition for
  1537. redirecting the output channel on queue runs.  It's
  1538. not clear this code even does anything.  From Eric
  1539. Wassenaar of the Dutch National Institute for Nuclear
  1540. and High-Energy Physics.
  1541. Fix some problems that caused queue runs to do "too much work",
  1542. such as double-reading the Errors-To: header.  From
  1543. Eric Wassenaar.
  1544. Error messages on writing the temporary file (including the
  1545. data file) were getting suppressed in SMTP -- this
  1546. fix causes them to be properly reported.  From Eric
  1547. Wassenaar.
  1548. Some changes to support AF_UNIX sockets -- this will only
  1549. really become relevant in the next release, but some
  1550. people need it for local patches.  From Michael
  1551. Corrigan of UC San Diego.
  1552. Use dynamically allocated memory (instead of static buffers)
  1553. for macros defined in initsys() and settime(); since
  1554. these can have different values depending on which
  1555. envelope they are in.  From Eric Wassenaar.
  1556. Improve logging to show ctladdr on to= logging; this tells you
  1557. what uid/gid processes ran as.
  1558. Fix a problem that caused error messages to be discarded if
  1559. the sender address was unparseable for some reason;
  1560. this was supposed to fall back to the "return to
  1561. postmaster" case.
  1562. Improve aliaswait backoff algorithm.
  1563. Portability patches for Linux (8.6.3 required another header
  1564. file) (from Karl London) and SCO UNIX.
  1565. CONFIG: patch prog mailer to not strip host name off of envelope
  1566. addresses (so that it matches local again).  From
  1567. Christopher Davis.
  1568. CONFIG: change uucp-dom mailer so that "<>" translates to $n;
  1569. this prevents uux from seeing lines with null names like
  1570. ``From   Sat Oct 30 14:55:31 1993''.  From Motonori
  1571. Nakamura of Kyoto University.
  1572. CONFIG: handle <list:;> syntax correctly.  This isn't legal, but
  1573. it shouldn't fail miserably.  From Motonori Nakamura.
  1574. 8.6.2/8.6.2 1993/10/15
  1575. Put a "successful delivery" message in the transcript for
  1576. addresses that get return-receipts.
  1577. Put a prominent "this is only a warning" message in warning
  1578. messages -- some people don't read carefully enough
  1579. and end up sending the message several times.
  1580. Include reason for temporary failure in the "warning" return
  1581. message.  Currently, it just says "cannot send for
  1582. four hours".
  1583. Fix the "Original message received" time generated for
  1584. returntosender messages.  It was previously listed as
  1585. the current time.  Bug reported by Eric Hagberg of
  1586. Cornell University Medical College.
  1587. If there is an error when writing the body of a message,
  1588. don't send the trailing dot and wait for a response
  1589. in sender SMTP, as this could cause the connection to
  1590. hang up under some bizarre circumstances.  From Eric
  1591. Wassenaar.
  1592. Fix some server SMTP synchronization problems caused when
  1593. connections fail during message collection.  From
  1594. Eric Wassenaar.
  1595. Fix a problem that can cause srvrsmtp to reject mail if the
  1596. name server is down -- it accepts the RCPT but rejects
  1597. the DATA command.  Problem reported by Jim Murray of
  1598. Stratus.
  1599. Fix a problem that can cause core dumps if the config file
  1600. incorrectly resolves to a null hostname.  Reported by
  1601. Allan Johannesen of WPI.
  1602. Non-root use of -C flag, dangerous -f flags, and use of -oQ
  1603. by non-root users were not put into
  1604. X-Authentication-Warning:s as intended because the
  1605. config file hadn't set the PrivacyOptions yet.  Fix
  1606. from Sven-Ove Westberg of the University of Lulea.
  1607. Under very odd circumstances, the alias file rebuild code
  1608. could get confused as to whether a database was
  1609. open or not.
  1610. Check "vendor code" on the end of V lines -- this is
  1611. intended to provide a hook for vendor-specific
  1612. configuration syntax.  (This is a "new feature",
  1613. but I've made an exception to my rule in a belief
  1614. that this is a highly exceptional case.)
  1615. Portability fixes for DG/UX (from Douglas Anderson of NCSC),
  1616. SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
  1617. (from Jon Forrest of UC Berkeley)
  1618. CONFIG: fix ``mailer:host'' form of UUCP relay naming.
  1619. 8.6.1/8.6 1993/10/08
  1620. Portability fixes for A/UX and Encore UMAX V.
  1621. Fix error message handling -- if you had a name server down
  1622. causing an error during parsing, that message was never
  1623. propagated to the queue file.
  1624. 8.6/8.6 1993/10/05
  1625. Configuration cleanup: make it easier to undo IDENTPROTO in
  1626. conf.h (other systems have the same bug).
  1627. If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
  1628. getdtablesize() instead of sysconf(); a disturbingly
  1629. large number of systems defined _SC_OPEN_MAX in the
  1630. header files but don't have the syscall.
  1631. Another patch to really truly ignore MX records in getcanonname
  1632. if trymx == FALSE.
  1633. Fix problem that caused the "250 IAA25499 Message accepted for
  1634. delivery" message to be omitted if there was an error
  1635. in the header of the message (e.g., a bad Errors-To:
  1636. line).  Pointed out by Michael Corrigan of UCSD.
  1637. Announce name of host we are chatting when we get errors; this
  1638. is an IDA-ism suggested by Christophe Wolfhugel.
  1639. Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
  1640. Australian Artificial Intelligence Institute), SCO Unix
  1641. (from Murray Kucherawy of Hookup Communication Corp.),
  1642. NeXT (from Vince DeMarco and myself), Linux (from
  1643. Karl London <karl@borg.demon.co.uk>), BSDI (from
  1644. Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
  1645. Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
  1646. Some changes to get around gcc optimizer bugs.  From Takahiro
  1647. Kanbe.
  1648. Fix error recovery in queueup if another tf file of the same
  1649. name already exists.  Problem stumbled over by Bill
  1650. Wisner of The Well.
  1651. Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
  1652. Problem noted by Keith McMillan of Ameritech Services.
  1653. Deal with group permissions properly when opening .forward and
  1654. :include: files.  This relaxes the 8.1C restrictions
  1655. slightly more.  This includes proper setting of groups
  1656. when reading :include: files, allowing you to read some
  1657. files that you should be able to read but have previously
  1658. been denied unless you owned them or they had "other"
  1659. read permission.
  1660. Make certain that $j is in $=w (after the .cf is read) so that
  1661. if the user is forced to override some silly system,
  1662. MX suppression will still work.
  1663. Fix a couple of efficiency problems where newstr was double-
  1664. calling expensive routines.  In at least one case, it
  1665. wasn't guaranteed that they would always return the
  1666. same result.  Problem noted by Christophe Wolfhugel.
  1667. Fix null pointer dereference in putoutmsg -- only on an error
  1668. condition from a non-SMTP mailer.  From Motonori
  1669. Nakamura.
  1670. Macro expand "C" line class definitions before scanning so that
  1671. "CX $Z" works.
  1672. Fix problem that caused error message to be sent while still
  1673. trying to send the original message if the connection
  1674. is closed during a DATA command after getting an error
  1675. on an RCPT command (pretty obscure).  Problem reported
  1676. by John Myers of CMU.
  1677. Fix reply to NOOP to be 250 instead of 200 -- this is a long
  1678. term bug.
  1679. Fix a nasty bug causing core dumps when returning the "warning:
  1680. cannot deliver for N hours -- will keep trying" message;
  1681. it only occurred if you had PostmasterCopy set and
  1682. only on some architectures.  Although sendmail would
  1683. keep trying, it would send error messages on each
  1684. queue interval.  This is an important fix.
  1685. Allow u and g options to take user and group names respectively.
  1686. Don't do a chdir into the queue directory in -bt mode to make
  1687. ruleset testing a bit easier.
  1688. Don't allow users to turn off logging (using -oL) on the command
  1689. line -- command line can only raise, not lower, logging
  1690. level.
  1691. Set $u to the original recipient on the SMTP transaction or on
  1692. the command line.  This is only done if there is exactly
  1693. one recipient.  Technically, this does not meet the
  1694. specs, because it does not guarantee a domain on the
  1695. address.
  1696. Fix a problem that dumped error messages on bad addresses if
  1697. you used the -t flag.  Problem noted by Josh Smith of
  1698. Harvey Mudd College.
  1699. Given an address such as ``<foo> <bar>'', auto-quote the first
  1700. ``<foo>'' part, giving ``"<foo>" <bar>''.  This is to
  1701. avoid the problem of people who use angle brackets in
  1702. their full name information.
  1703. Fix a null pointer dereference if you set option "l", have
  1704. an Errors-To: header in the message, and have Errors-To:
  1705. defined in the config file H lines.  From J.R. Oldroyd.
  1706. Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
  1707. wrong when compiling.  Suggested by Rick McCarty of TI.
  1708. Fix a problem that could pass negative SIZE parameter if the
  1709. df file got lost; this would cause servers to always
  1710. give a temporary failure, making the problem even worse.
  1711. Problem noted by Allan Johannesen of WPI.
  1712. Add "ident" timeout (one of the "r" option selectors) for IDENT
  1713. protocol timeouts (30s default).  Requested by Murray
  1714. Kucherawy of HookUp Communication Corp. to handle bogus
  1715. PC TCP/IP implementations.
  1716. Change $w default definition to be just the first component of
  1717. the domain name on config level 5.  The $j macro defaults
  1718. to the FQDN; $m remains as before.  This lets well-behaved
  1719. config files use any of the short, long, or subdomain
  1720. names.
  1721. Add makesendmail script in src to try to automate multi-architecture
  1722. builds.  I know, this is sub-optimal, but it is still
  1723. helpful.
  1724. Fix very obscure race condition that can cause a queue run to
  1725. get a queue file for an already completed job.  This
  1726. problem has existed for years.  Problem noted by the
  1727. long suffering Allan Johannesen of WPI.
  1728. Fix a problem that caused the raw sender name to be passed to
  1729. udbsender instead of the canonified name -- this caused
  1730. it to sometimes miss records that it should have found.
  1731. Relax check of name on HELO packet so that a program using -bs
  1732. that claims to be itself works properly.
  1733. Restore rewriting of $: part of address through 2, R, 4 in
  1734. buildaddr -- this requires passing a lot of flags to get
  1735. it right.  Unlike old versions, this ONLY rewrites
  1736. recipient addresses, not sender addresses.
  1737. Fix a bug that caused core dumps in config files that cannot
  1738. resolve /file/name style addresses.  Fix from Jonathan
  1739. Kamens of OpenVision Technologies.
  1740. Fix problem with fcntl locking that can cause error returns to
  1741. be lost if the lock is lost; this required fully
  1742. queueing everything, dropping the envelope (so errors
  1743. would get returned), and then re-reading the queue from
  1744. scratch.
  1745. Fix a problem that caused aliases that redefine an otherwise
  1746. true address to still send to the original address
  1747. if and only if the alias failed in certain bizarre
  1748. ways (e.g, if they pointed at a list:; syntax address).
  1749. Problem pointed out by Jonathan Kamens.
  1750. Remove support for frozen configuration files.  They caused
  1751. more trouble than it was worth.
  1752. Fix problem that can cause error messages to get ignored when
  1753. using both -odb and -t flags.  Problem noted by Rob
  1754. McNicholas at U.C. Berkeley.
  1755. Include all "normal" variations on hostname in $=w.  For example,
  1756. if the host name is vangogh.cs.berkeley.edu, $=w will
  1757. contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
  1758. Add "restrictqrun" privacy flag -- without this, anyone can run
  1759. the queue.
  1760. Reset SmtpPhase global on initial connection creation so that
  1761. messages don't come out with stale information.
  1762. Pass an "ext" argument to lockfile so that error/log messages
  1763. will properly reflect the true filename being locked.
  1764. Put all [...] address forms into $=w -- this eliminates the need
  1765. for MAXIPADDR in conf.h.  Suggested by John Gardiner
  1766. Myers of CMU.
  1767. Fix a bug that can cause qf files to be left around even after
  1768. an SMTP RSET command.  Problem and fix from Michael
  1769. Corrigan.
  1770. Don't send a PostmasterCopy to errors when the Precedence: is
  1771. negative.  Error reports still go to the envelope
  1772. sender address.
  1773. Add LA_SHORT for load averages.
  1774. Lock sendmail.st file when posting statistics.
  1775. Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
  1776. set the size of the TCP send and receive buffers; if you
  1777. run over a slow slip line you may need to set these down
  1778. (although it would be better to fix the SLIP implementation
  1779. so that it's not necessary to recompile every program
  1780. that does bulk data transfer).
  1781. Allow null defaults on $( ... $) lookups.  Problem reported by
  1782. Amir Plivatsky.
  1783. Diagnose crufty S and V config lines.  This resulted from an
  1784. observation that some people were using the SITE macro
  1785. without the SITECONFIG macro first, which was causing
  1786. bogus config files that were not caught.
  1787. Fix makemap -f flag to turn off case folding (it was turning it
  1788. on instead).  THIS IS A USER VISIBLE CHANGE!!!
  1789. Fix a problem that caused multiple error messages to be sent if
  1790. you used "sendmail -t -oem -odb", your system uses fcntl
  1791. locking, and one of the recipient addresses is unknown.
  1792. Reset uid earlier in include() so that recursive .forwards or
  1793. :include:s don't use the wrong uid.
  1794. If file descriptor 0, 1, or 2 was closed when sendmail was
  1795. called, the code to recover the descriptor was broken.
  1796. This sometimes (only sometimes) caused problems with the
  1797. alias file.  Fix from Motonori Nakamura.
  1798. Fix a problem that caused aliaswait to go into infinite recursion
  1799. if the @:@ metasymbol wasn't found in the alias file.
  1800. Improve error message on newaliases if database files cannot be
  1801. opened or if running with no database format defined.
  1802. Do a better estimation of the size of error messages when NoReturn
  1803. is set.  Problem noted by P{r (Pell) Emanuelsson.
  1804. Fix a problem causing the "c" option (don't connect to expensive
  1805. mailers) to be ignored in SMTP.  Problem noted and the
  1806. solution suggested by Robert Elz of The University of
  1807. Melbourne.
  1808. Improve connection caching algorithm by passing "[host]" to
  1809. hostsignature, which strips the square brackets and
  1810. returns the real name.  This allows mailertable entries
  1811. to match regular entries.
  1812. Re-enable Return-Receipt-To: -- people seem to want this stupid
  1813. feature, even if it doesn't work right.
  1814. Catch and log attempts to try the "wiz" command in server SMTP.
  1815. This also ups the log level from LOG_NOTICE to LOG_CRIT.
  1816. Be more generous at assigning $z to the home directory -- do this
  1817. for programs that are specified through a .forward file.
  1818. Fix from Andrew Chang of Sun Microsystems.
  1819. Always save a fatal error message in preference to a non-fatal
  1820. error message so that the "subject" line of return
  1821. messages is the best possible.
  1822. CONFIG: reduce the number of quotes needed to quote configuration
  1823. parameters with commas: two quotes should work now, e.g.,
  1824. define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
  1825. CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
  1826. connections (domain-ized UUCP).
  1827. CONFIG: fix bug in default maps (-o must be before database file
  1828. name).  Pointed out by Christophe Wolfhugel.
  1829. CONFIG: add FEATURE(nodns) to state that we are not relying on
  1830. DNS.  This would presumably be used in UUCP islands.
  1831. CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
  1832. CONFIG: log $u in Received: line.  This is in technical violation
  1833. of the standards, since it doesn't guarantee a domain
  1834. on the address.
  1835. CONFIG: don't assume "m" in local mailer flags -- this means that
  1836. if you redefine LOCAL_MAILER_FLAGS you will have to include
  1837. the "m" flag should you want it.  Apparently some Solaris 2.2
  1838. installations can't handle multiple local recipients.
  1839. Problem noted by Josh Smith.
  1840. CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
  1841. CONFIG: change default version level from 4 to 5.
  1842. CONFIG: add FEATURE(nullclient) to create a config file that
  1843. forwards all mail to a hub without ever looking at the
  1844. addresses in any detail.
  1845. CONFIG: properly strip mailer: information off of relays when
  1846. used to change .BITNET form into %-hack form.
  1847. CONFIG: fix a problem that caused infinite loops if presented
  1848. with an address such as "!foo".
  1849. CONFIG: check for self literal (e.g., [128.32.131.12]) even if
  1850. the reverse "PTR" mapping is broken.  There's a better
  1851. way to do this, but the change is fairly major and I
  1852. want to hold it for another release.  Problem noted by
  1853. Bret Marquis.
  1854. 8.5/8.5 1993/07/23
  1855. Serious bug: if you used a command line recipient that was unknown
  1856. sendmail would not send a return message (it was treating
  1857. everything as though it had an SMTP-style client that
  1858. would do the return itself).  Problem noted by Josh Smith.
  1859. Change "trymx" option in getcanonname() to ignore all MX data,
  1860. even during a T_ANY query.  This actually didn't break
  1861. anything, because the only time you called getcanonname
  1862. with !trymx was if you already knew there were no MX
  1863. records, but it is somewhat cleaner.  From Motonori
  1864. Nakamura.
  1865. Don't call getcanonname from getmxrr if you already know there
  1866. are no DNS records matching the name.
  1867. Fix a problem causing error messages to always include "The
  1868. original message was received ... from localhost".
  1869. The correct original host information is now included.
  1870. Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
  1871. version of "test" doesn't have the -x flag).  Change it
  1872. to use -f instead.  From John Myers.
  1873. CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
  1874. esmtp -- it should be smtp.
  1875. CONFIG: send all relayed mail using confRELAY_MAILER (defaults
  1876. to "relay" (a variant of "smtp") if MAILER(smtp) is used,
  1877. else "suucp" if MAILER(uucp) is used, else "unknown");
  1878. this cleans up the configs somewhat.  This fixes a serious
  1879. problem that caused route-addrs to get mistaken as relays,
  1880. pointed out by John Myers.  WARNING: this also causes
  1881. the default on SMART_HOST to change from "suucp" to
  1882. "relay" if you have MAILER(smtp) specified.
  1883. 8.4/8.4 1993/07/22
  1884. Add option `w'.  If you receive a message that comes to you because
  1885. you are the best (lowest preference) target of an MX, and
  1886. you haven't explicitly recognized the source MX host in
  1887. your .cf file, this option will cause you to try the target
  1888. host directly (as if there were no MX for it at all).  If
  1889. `w' is not set, this case is a configuration error.
  1890. Beware: if `w' is set, senders may get bogus errors like
  1891. "message timed out" or "host unknown" for problems that
  1892. are really configuration errors.  This option is
  1893. disrecommended, provided only for compatibility with
  1894. UIUC sendmail.
  1895. Fix a problem that caused the incoming socket to be left open
  1896. when sendmail forks after the DATA command.  This caused
  1897. calling systems to wait in FIN_WAIT_2 state until the
  1898. entire list was processed and the child closed -- a
  1899. potentially prodigious amount of time.  Problem noted
  1900. by Neil Rickert.
  1901. Fix problem (created in 6.64) that caused mail sent to multiple
  1902. addresses, one of which was a bad address, to completely
  1903. suppress the sending of the message.  This changes
  1904. handling of EF_FATALERRS somewhat, and adds an
  1905. EF_GLOBALERRS flag.  This also fixes a potential problem
  1906. with duplicate error messages if there is a syntax error
  1907. in the header of a message that isn't noticed until late
  1908. in processing.  Original problem pointed out by Josh Smith
  1909. of Harvey Mudd College.  This release includes quite a bit
  1910. of dickering with error handling (see below).
  1911. Back out SMTP transaction if MAIL gets nested 501 error.  This
  1912. will only hurt already-broken software and should help
  1913. humans.
  1914. Fix a problem that broke aliases when neither NDBM nor NEWDB were
  1915. compiled in.  It would never read the alias file.
  1916. Repair unbalanced `)' and `>' (the "open" versions are already
  1917. repaired).
  1918. Logging of "done" in dropenvelope() was incorrect: it would
  1919. log this even when the queue file still existed.  Change
  1920. this to only log "done" (at log level 11) when the
  1921. queue file is actually removed.  From John Myers.
  1922. Log "lost connection" in server SMTP at log level 20 if there
  1923. is no pending transaction.  Some senders just close the
  1924. connection rather than sending QUIT.
  1925. Fix a bug causing getmxrr to add a dot to the end of unqualified
  1926. domains that do not have MX records -- this would cause
  1927. the subsequent host name lookup to fail.  The problem
  1928. only occurred if you had FEATURE(nocanonify) set.
  1929. Problem noted by Rick McCarty of Texas Instruments.
  1930. Fix invocation of setvbuf when passed a -X flag -- I had
  1931. unwittingly used an ANSI C extension, and this caused
  1932. core dumps on some machines.
  1933. Diagnose self-destructive alias loops on RCPT as well as EXPN.
  1934. Previously it just gave an empty send queue, which
  1935. then gave either "Need RCPT (recipient)" at the DATA
  1936. (confusing, since you had given an RCPT command which
  1937. returned 250) or just dropped the email, depending on
  1938. whether you were running VERBose mode.  Now it usually
  1939. diagnoses this case as "aliasing/forwarding loop broken".
  1940. Unfortunately, it still doesn't adequately diagnose
  1941. some true error conditions.
  1942. Add internal concept of "warning messages" using 6xx codes.
  1943. These are not reported only to Postmaster.  Unbalanced
  1944. parens, brackets, and quotes are printed as 653 codes.
  1945. They are always mapped to 5xx codes before use in SMTP.
  1946. Clean up error messages to tell both the actual address that
  1947. failed and the alias they arose from.  This makes it
  1948. somewhat easier to diagnose problems.  Difficulty noted
  1949. by Motonori Nakamura.
  1950. Fix a problem that inappropriately added a ctladdr to addresses
  1951. that shouldn't have had one during a queue run.  This
  1952. caused error messages to be handled differently during
  1953. a queue run than a direct run.
  1954. Don't print the qf name and line number if you get errors during
  1955. the direct run of the queue from srvrsmtp -- this was
  1956. just extra stuff for users to crawl through.
  1957. Put command line flags on second line of pid file so you can
  1958. auto-restart the daemon with all appropriate arguments.
  1959. Use "kill `head -1 /etc/sendmail.pid`" to stop the
  1960. daemon, and "eval `tail -1 /etc/sendmail.pid`" to
  1961. restart it.
  1962. Remove the ``setuid(getuid())'' in main -- this caused the
  1963. IDENT daemon to screw up.  This required that I change
  1964. HASSETEUID to HASSETREUID and complicate the mode
  1965. changing somewhat because both Ultrix and SunOS seem
  1966. to have a bug causing seteuid() to set the saved uid
  1967. as well as the effective.  The program test/t_setreuid.c
  1968. will test to see if your implementation of setreuid(2)
  1969. is appropriately functional.
  1970. The FallBackMX (option V) handling failed to properly identify
  1971. fallback to yourself -- most of the code was there,
  1972. but it wasn't being enabled.  Problem noted by Murray
  1973. Kucherawy of the University of Waterloo.
  1974. Change :include: open timeout from ETIMEDOUT to an internal
  1975. code EOPENTIMEOUT; this avoids adding "during SmtpPhase
  1976. with CurHostName" in error messages, which can be
  1977. confusing.  Reported by Jonathan Kamens of OpenVision
  1978. Technologies.
  1979. Back out setpgrp (setpgid on POSIX systems) call to reset the
  1980. process group id.  The original fix was to get around
  1981. some problems with recalcitrant MUAs, but it breaks
  1982. any call from a shell that creates a process group id
  1983. different from the process id.  I could try to fix
  1984. this by diddling the tty owner (using tcsetpgrp or
  1985. equivalent) but this is too likely to break other
  1986. things.
  1987. Portability changes:
  1988. Support -M as equivalent to -oM on Ultrix -- apparently
  1989. DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
  1990. instead of using standard flags.  Oh joy.  This
  1991. behavior reported by Jon Giltner of University
  1992. of Colorado.
  1993. SGI IRIX  -- this includes several changes that should
  1994. help other strict ANSI compilers.
  1995. SCO Unix -- from Murray Kucherawy of HookUp Communication
  1996. Corporation.
  1997. Solaris running the Sun C compiler (which despite the
  1998. documentation apparently doesn't define
  1999. __STDC__ by default).
  2000. ConvexOS from Eric Schnoebelen of Convex.
  2001. Sony NEWS workstations and Omron LUNA workstations from
  2002. Motonori Nakamura.
  2003. CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
  2004. CONFIG: delete `C' and `e' from default SMTP mailers flags;
  2005. several people have made a good argument that this
  2006. creates more problems than it solves (although this
  2007. may prove painful in the short run).
  2008. CONFIG: generalize all the relays to accept a "mailer:host"
  2009. format.
  2010. CONFIG: move local processing in ruleset 0 into a new ruleset
  2011. 98 (8 on old sendmail).  Domain literal [a.b.c.d]
  2012. addresses are also passed through this ruleset.
  2013. CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
  2014. internet-style addresses would "fall off the end" of
  2015. ruleset zero and be interpreted as local -- however,
  2016. the angle brackets confused the recursive call.
  2017. These are now diagnosed as "Unrecognized host name".
  2018. CONFIG: USENET rules weren't included in S0 because of a mistaken
  2019. ifdef(`_MAILER_USENET_') instead of
  2020. ifdef(`_MAILER_usenet_').  Problem found by Rein Tollevik
  2021. of SINTEF RUNIT, Oslo.
  2022. CONFIG: move up LOCAL_RULE_0 processing so that it happens very
  2023. early in ruleset 0; this allows .mc authors to bypass
  2024. things like the "short circuit" code for local addresses.
  2025. Prompted by a comment by Bill Wisner of The Well.
  2026. CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
  2027. esmtp) to send SMTP mail.  This allows you to default
  2028. to esmtp but use a mailertable or other override to
  2029. deal with broken servers.  This logic was pointed out
  2030. to me by Bill Wisner.  Ditto for confLOCAL_MAILER.
  2031. Changes to cf/sh/makeinfo.sh to make it portable to SVR4
  2032. environments.  Ugly as sin.
  2033. 8.3/8.3 1993/07/13
  2034. Fix setuid problems introduced in 8.2 that caused messages
  2035. like "Cannot create qfXXXXXX: Invalid argument"
  2036. or "Cannot reopen dfXXXXXX: Permission denied".  This
  2037. involved a new compile flag "HASSETEUID" that takes
  2038. the place of the old _POSIX_SAVED_IDS -- it turns out
  2039. that the POSIX interface is broken enough to break
  2040. some systems badly.  This includes some fixes for
  2041. HP-UX.  Also fixes problems where the real uid is
  2042. not reset properly on startup (from Neil Rickert).
  2043. Fix a problem that caused timed out messages to not report the
  2044. addresses that timed out.  Error messages are also more
  2045. "user friendly".
  2046. Drop required bandwidth on connections from 64 bytes/sec to
  2047. 16 bytes/sec.
  2048. Further Solaris portability changes -- doesn't require the BSD
  2049. compatibility library.  This also adds a new
  2050. "HASGETDTABLESIZE" compile flag which can be used if
  2051. you want to use getdtablesize(2) instead of sysconf(2).
  2052. These are loosely based on changes from David Meyer at
  2053. University of Oregon.  This now seems to work, at least
  2054. for quick test cases.
  2055. Fix a problem that can cause duplicate error messages to be
  2056. sent if you are in SMTP, you send to multiple addresses,
  2057. and at least one of those addresses is good and points
  2058. to an account that has a .forward file (whew!).
  2059. Fix a problem causing messages to be discarded if checkcompat()
  2060. returned EX_TEMPFAIL (because it didn't properly mark
  2061. the "to" address).  Problem noted by John Myers.
  2062. Fix dfopen to return NULL if the open failed; I was depending
  2063. on fdopen(-1) returning NULL, which isn't the case.  This
  2064. isn't serious, but does result in weird error diagnoses.
  2065. From Michael Corrigan.
  2066. CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
  2067. messages sent through UUCP-family mailers.  Suggested
  2068. by Bill Wisner of The Well.
  2069. CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
  2070. include a "uucp-dom" mailer that uses domain-style
  2071. addressing.  Suggested by Bill Wisner.
  2072. CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
  2073. LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS.  Suggested by
  2074. Christophe Wolfhugel.
  2075. CONFIG: Add OSTYPE(aix3).  From Christophe Wolfhugel.
  2076. 8.2/8.2 1993/07/11
  2077. Don't drop out on config file parse errors in -bt mode.
  2078. On older configuration files, assume option "l" (use Errors-To
  2079. header) for back compatibility.  NOTE:  this DOES NOT
  2080. imply an endorsement of the Errors-To: header in any way.
  2081. Accept -x flag on AIX-3 as well as OSF/1.  Why, why, why???
  2082. Don't log errors on EHLO -- it isn't a "real" error for an old
  2083. SMTP server to give an error on this command, and
  2084. logging it in the transcript can be confusing.  Fix
  2085. from Bill Wisner.
  2086. IRIX compatibility changes provided by Dan Rich
  2087. <drich@sandman.lerc.nasa.gov>.
  2088. Solaris 2 compatibility changes.  Provided by Bob Cunningham
  2089. <bob@kahala.soest.hawaii.edu>, John Oleynick
  2090. <juo@klinzhai.rutgers.edu>
  2091. Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
  2092. move usersmtp (smtpinit and smtpmailfrom) to -d18 to
  2093. match the other flags in that file.
  2094. Flush transcript before fork in mailfile().  From Eric Wassenaar.
  2095. Save h_errno in mci struct and improve error message display.
  2096. Changes from Eric Wassenaar.
  2097. Open /dev/null for the transcript if the create of the xf file
  2098. failed; this avoids at least one possible null pointer
  2099. reference in very weird cases.  From Eric Wassenaar.
  2100. Clean up statistics gathering; it was over-reporting because of
  2101. forks.  From Eric Wassenaar.
  2102. Fix problem that causes old Return-Path: line to override new
  2103. Return-Path: line (conf.c needs H_FORCE to avoid
  2104. re-using old value).  From Motonori Nakamura.
  2105. Fix broken -m flag in K definition -- even if -m (match only)
  2106. was specified, it would still replace the key with the
  2107. value.  Noted by Rick McCarty of Texas Instruments.
  2108. If the name server timed out over several days, no "timed out"
  2109. message would ever be sent back.  The timeout code
  2110. has been moved from markfailure() to dropenvelope()
  2111. so that all such failures should be diagnosed.  Pointed
  2112. out by Christophe Wolfhugel and others.
  2113. Relax safefile() constraints: directories in an include or
  2114. forward path must be readable by self if the controlling
  2115. user owns the entry, readable by all otherwise (e.g.,
  2116. when reading your .forward file, you have to own and
  2117. have X permission in it; everyone needs X permission in
  2118. the root and directories leading up to your home);
  2119. include files must be readable by anyone, but need not
  2120. be owned by you.
  2121. If _POSIX_SAVED_IDS is defined, setuid to the owner before
  2122. reading a .forward file; this gets around some problems
  2123. on NFS mounts if root permission is not exported and
  2124. the user's home directory isn't x'able.
  2125. Additional NeXT portability enhancements from Axel Zinser.
  2126. Additional HP-UX portability enhancements from Brian Bullen.
  2127. Add a timeout around SMTP message writes; this assumes you can
  2128. get throughput of at least 64 bytes/second.  Note that
  2129. this does not impact the "datafinal" default, which
  2130. is separate; this is just intended to work around
  2131. network clogs that will occur before the final dot
  2132. is sent.  From Eric Wassenaar.
  2133. Change map code to set the "include null" flag adaptively --
  2134. it initially tries both, but if it finds anything
  2135. matching without a null it never tries again with a
  2136. null and vice versa.  If -N is specified, it never
  2137. tries without the null and creates new maps with a
  2138. null byte.  If -O is specified, it never tries with
  2139. the null (for efficiency).  If -N and -O are specified,
  2140. you get -NO (get it?) lookup at all, so this would
  2141. be a bad idea.  If you don't specify either -N or -O,
  2142. it adapts.
  2143. Fix recognition of "same from address" so that MH submissions
  2144. will insert the appropriate full name information;
  2145. this used to work and got broken somewhere along the
  2146. way.
  2147. Some changes to eliminate some unnecessary SYSERRs in the
  2148. log.  For example, if you lost a connection, don't
  2149. bother reporting that fact on the connection you lost.
  2150. Add some "extended debugging" flags to try to track down
  2151. why we get occasional problems with file descriptor
  2152. one being closed when execing a mailer; it seems to
  2153. only happen when there has been another error in the
  2154. same transaction.  This requires XDEBUG, defined
  2155. by default in conf.h.
  2156. Add "-X filename" command line flag, which logs both sides of
  2157. all SMTP transactions.  This is intended ONLY for
  2158. debugging bad implementations of other mailers; start
  2159. it up, send a message from a mailer that is failing,
  2160. and then kill it off and examine the indicated log.
  2161. This output is not intended to be particularly human
  2162. readable.  This also adds the HASSETVBUF compile
  2163. flag, defaulted on if your compiler defines __STDC__.
  2164. CONFIG: change SMART_HOST to override an SMTP mailer.  If you
  2165. have a local net that should get direct connects, you
  2166. will need to use LOCAL_NET_CONFIG to catch these hosts.
  2167. See cf/README for an example.
  2168. CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
  2169. sites that don't use the -d flag.
  2170. CONFIG: hide recipient addresses as well as sender addresses
  2171. behind $M if FEATURE(allmasquerade) is specified; this
  2172. has been requested by several people, but can break
  2173. local aliases.  For example, if you mail to "localalias"
  2174. this will be rewritten as "localalias@masqueradehost";
  2175. although initial delivery will work, replies will be
  2176. broken.  Use it sparingly.
  2177. CONFIG: add FEATURE(domaintable).  This maps unqualified domains
  2178. to qualified domains in headers.  I believe this is
  2179. largely equivalent to the IDA feature of the same name.
  2180. CONFIG: use $U as UUCP name instead of $k.  This permits you
  2181. to override the "system name" as your UUCP name --
  2182. in particular, to use domain-ized UUCP names.  From
  2183. Bill Wisner of The Well.
  2184. CONFIG: create new mailer "esmtp" that always tries EHLO
  2185. first.  This is currently unused in the config files,
  2186. but could be used in a mailertable entry.
  2187. 8.1C/8.1B 1993/06/27
  2188. Serious security bug fix: it was possible to read any file on
  2189. the system, regardless of ownership and permissions.
  2190. If a subroutine returns a fully qualified address, return it
  2191. immediately instead of feeding it back into rewriting.
  2192. This fixes a problem with mailertable lookups.
  2193. CONFIG: fix some M4 frotz (concat => CONCAT)
  2194. 8.1B/8.1A 1993/06/12
  2195. Serious bug fix: pattern matching backup algorithm stepped by
  2196. two tokens in classes instead of one.  Found by Claus
  2197. Assmann at University of Kiel, Germany.
  2198. 8.1A/8.1A 1993/06/08
  2199. Another mailertable fix....
  2200. 8.1/8.1 1993/06/07
  2201. 4.4BSD freeze.  No semantic changes.