1 SENDMAIL RELEASE NOTES 2 3 4This listing shows the version of the sendmail binary, the version 5of the sendmail configuration files, the date of release, and a 6summary of the changes in that release. 7 88.16.1/8.16.1 2020/07/05 9 SECURITY: If sendmail tried to reuse an SMTP session which had 10 already been closed by the server, then the connection 11 cache could have invalid information about the session. 12 One possible consequence was that STARTTLS was not 13 used even if offered. This problem has been fixed 14 by clearing out all relevant status information 15 when a closed session is encountered. 16 OpenSSL versions before 0.9.8 are no longer supported. 17 OpenSSL version 1.1.0 and 1.1.1 are supported. 18 Initial support for DANE (see RFC 7672 et.al.) is available if 19 the compile time option DANE is set. Only TLSA RR 3-1-x 20 is currently implemented. 21 New options SSLEngine and SSLEnginePath to support OpenSSL engines. 22 Note: this feature has so far only been tested with the 23 "chil" engine; please report problems with other engines 24 if you encounter any. 25 New option CRLPath to specify a directory which contains 26 hashes pointing to certificate revocations files. 27 Based on patch from Al Smith. 28 New rulesets tls_srv_features and tls_clt_features which 29 can return a (semicolon separated) list of TLS related 30 options, e.g., CipherList, CertFile, KeyFile, 31 see doc/op/op.me for details. 32 To automatically handle TLS interoperability problems for outgoing 33 mail, sendmail can now immediately try a connection again 34 without STARTTLS after a TLS handshake failure. 35 This can be configured globally via the option 36 TLSFallbacktoClear or per session via the 'C' flag 37 of tls_clt_features. 38 This also adds the new value "CLEAR" for the macro 39 {verify}: STARTTLS has been disabled internally for 40 a clear text delivery attempt. 41 Apply Timeout.starttls also to the server waiting for the TLS 42 handshake to begin. Based on patch from Simon Hradecky. 43 New compile time option TLS_EC to enable the use of elliptic 44 curve cryptography in STARTTLS (previously available as 45 _FFR_TLS_EC). 46 Handle MIME boundaries specified in headers which contain CRLF. 47 Fix detection of loopback net (it was broken when compiled 48 with NETINET6) and only set the macros {if_addr_out} 49 and {if_family_out} if the interface of the outgoing 50 connection does not belong to the loopback net. 51 Fix logic to enable a milter to delete a recipient in 52 DeliveryMode=interactive even if it might be subject 53 to alias expansion. 54 Log name of a milter making changes (this was missing for 55 some functions). 56 Log the actual reply of a server when an SMTP delivery problem 57 occurs in a "reply=" field if possible. 58 Log user= for failed AUTH attempts if possible. Based on 59 patch from Packet Hack, Jim Hranicky, Kevin A. McGrail, 60 and Joe Quinn. 61 Add CDB as map type. Note: CDB is a "Constant DataBase", i.e., 62 no changes can be made after it is created, hence it 63 does not work with vacation(1) nor editmap(8) (except 64 for query mode). 65 Fix some memory leaks (mostly in error cases) and properly handle 66 copied varargs in sm_io_vfprintf(). The issues were found 67 using Coverity Scan and reported (including patches) by 68 Ondřej Lysoněk of Red Hat. 69 Do not override ServerSSLOptions and ClientSSLOptions when they 70 are specified on the command line. Based on patch from 71 Hiroki Sato. 72 Add RFC7505 Null MX support for domains that declare they do not 73 accept mail. 74 New compile time option LDAP_NETWORK_TIMEOUT which is set 75 automatically when LDAPMAP is used and 76 LDAP_OPT_NETWORK_TIMEOUT is available to enable the 77 new -c option for LDAP maps to specify the network timeout. 78 CONFIG: New FEATURE(`tls_session_features') to enable standard 79 rules for tls_srv_features and tls_clt_features; for 80 details see cf/README. 81 CONFIG: New options confSSL_ENGINE and confSSL_ENGINE_PATH 82 for SSLEngine and SSLEnginePath, respectively. 83 CONFIG: New options confDANE to enable DANE support. 84 CONFIG: New option confTLS_FALLBACK_TO_CLEAR for TLSFallbacktoClear. 85 CONFIG: New extension CITag: for TLS restrictions, see cf/README 86 for details. 87 CONFIG: FEATURE(`blacklist_recipients') renamed to 88 FEATURE(`blocklist_recipients'). 89 CONTRIB: cidrexpand updated to support IPv6 CIDR ranges and to 90 canonicalize IPv6 addresses; if cidrexpand is used with IPv6 91 addresses then UseCompressedIPv6Addresses must be disabled. 92 DOC: The dns map can return multiple values in a single result 93 if the -z option is used. 94 DOC: Note to set MustQuoteChars=. due to DKIM signatures. 95 LIBMILTER: Fix typo in a macro. Patch from Ignacio Goyret 96 of Alcatel-Lucent. 97 LIBMILTER: Fix reference in xxfi_negotiate documentation. 98 Patch from Sven Neuhaus. 99 LIBMILTER: Fix function name in smfi_addrcpt_par documentation. 100 Patch from G.W. Haywood. 101 LIBMILTER: Fix a potential memory leak in smfi_setsymlist(). 102 Patch from Martin Svec. 103 MAKEMAP: New map type "implicit" refers to the first available type, 104 i.e., it depends on the compile time options NEWDB, DBM, 105 and CDB. This can be used in conjunction with the 106 "implicit" map type in sendmail.cf. 107 Note: makemap, libsmdb, and sendmail must be compiled 108 with the same options (and library versions of course). 109 Portability: 110 Add support for Darwin 14-18 (Mac OS X 10.x). 111 New option HAS_GETHOSTBYNAME2: set if your system 112 supports gethostbyname2(2). 113 Set SM_CONF_SEM=2 for FreeBSD 12 and later due to 114 changes in sys/sem.h 115 On Linux set MAXHOSTNAMELEN (the maximum length 116 of a FQHN) to 256 if it is less than that value. 117 Added Files: 118 cf/feature/blocklist_recipients.m4 119 cf/feature/tls_failures.m4 120 devtools/OS/Darwin.14.x 121 devtools/OS/Darwin.15.x 122 devtools/OS/Darwin.16.x 123 libsmdb/smcdb.c 124 sendmail/ratectrl.h 125 1268.15.2/8.15.2 2015/07/03 127 If FEATURE(`nopercenthack') is used then some bogus input triggered 128 a recursion which was caught and logged as 129 SYSERR: rewrite: excessive recursion (max 50) ... 130 Fix based on patch from Ondrej Holas. 131 DHParameters now by default uses an included 2048 bit prime. 132 The value 'none' previously caused a log entry claiming 133 there was an error "cannot read or set DH parameters". 134 Also note that this option applies to the server side only. 135 The U= mailer field didn't accept group names containing hyphens, 136 underbars, or periods. Based on patch from David Gwynne 137 of the University of Queensland. 138 CONFIG: Allow connections from IPv6:0:0:0:0:0:0:0:1 to relay again. 139 Patch from Lars-Johan Liman of Netnod Internet Exchange. 140 CONFIG: New option UseCompressedIPv6Addresses to select between 141 compressed and uncompressed IPv6 addresses. The default 142 value depends on the compile-time option IPV6_FULL: 143 For 1 the default is False, for 0 it is True, thus 144 preserving the current behaviour. Based on patch from 145 John Beck of Oracle. 146 CONFIG: Account for IPv6 localhost addresses in 147 FEATURE(`block_bad_helo'). Suggested by Andrey Chernov 148 from FreeBSD and Robert Scheck from the Fedora Project. 149 CONFIG: Account for IPv6 localhost addresses in check_mail ruleset. 150 LIBMILTER: Deal with more invalid protocol data to avoid potential 151 crashes. Problem noted by Dimitri Kirchner. 152 LIBMILTER: Allow a milter to specify an empty macro list ("", not 153 NULL) in smfi_setsymlist() so no macro is sent for the 154 selected stage. 155 MAKEMAP: A change to check TrustedUser in fewer cases which was 156 made in 2013 caused a potential regression when makemap 157 was run as root (which should not be done anyway). 158 Note: sendmail often contains options "For Future Releases" 159 (prefix _FFR_) which might be enabled in a subsequent 160 version or might simply be removed as they turned out not 161 to be really useful. These features are usually not 162 documented but if they are, then the required (FFR) 163 options are listed in 164 - doc/op/op.* for rulesets and macros, 165 - cf/README for mc/cf options. 166 1678.15.1/8.15.1 2014/12/06 168 SECURITY: Properly set the close-on-exec flag for file descriptors 169 (except stdin, stdout, and stderr) before executing mailers. 170 If header rewriting fails due to a temporary map lookup failure, 171 queue the mail for later retry instead of sending it 172 without rewriting the header. Note: this is done 173 while the mail is being sent and hence the transaction 174 is aborted, which only works for SMTP/LMTP mailers 175 hence the handling of temporary map failures is 176 suppressed for other mailers. SMTP/LMTP servers may 177 complain about aborted transactions when this problem 178 occurs. 179 See also "DNS Lookups" in sendmail/TUNING. 180 Incompatible Change: Use uncompressed IPv6 addresses by default, 181 i.e., they will not contain "::". For example, 182 instead of ::1 it will be 0:0:0:0:0:0:0:1. This 183 permits a zero subnet to have a more specific match, 184 such as different map entries for IPv6:0:0 vs IPv6:0. 185 This change requires that configuration data 186 (including maps, files, classes, custom ruleset, 187 etc) must use the same format, so make certain such 188 configuration data is updated before using 8.15. 189 As a very simple check search for patterns like 190 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. If necessary, 191 the prior format can be retained by compiling with: 192 APPENDDEF(`conf_sendmail_ENVDEF', `-DIPV6_FULL=0') 193 in your devtools/Site/site.config.m4 file. 194 If debugging is turned on (-d0.14) also print the OpenSSL 195 versions, both build time and run time 196 (provided STARTTLS is compiled in). 197 If a connection to the MTA is dropped by the client before its 198 hostname can be validated, treat it as "may be forged", 199 so that the unvalidated hostname is not passed to a 200 milter in xxfi_connect(). 201 Add a timeout for communication with socket map servers 202 which can be specified using the -d option. 203 Add a compile time option HESIOD_ALLOW_NUMERIC_LOGIN to allow 204 numeric logins even if HESIOD is enabled. 205 The new option CertFingerprintAlgorithm specifies the finger- 206 print algorithm (digest) to use for the presented cert. 207 If the option is not set, md5 is used and the macro 208 {cert_md5} contains the cert fingerprint. 209 However, if the option is set, the specified algorithm 210 (e.g., sha1) is used and the macro {cert_fp} contains 211 the cert fingerprint. 212 That is, as long as the option is not set, the behaviour 213 does not change, but otherwise, {cert_md5} is superseded 214 by {cert_fp} even if you set CertFingerprintAlgorithm 215 to md5. 216 The options ServerSSLOptions and ClientSSLOptions can be used 217 to set SSL options for the server and client side 218 respectively. See SSL_CTX_set_options(3) for a list. 219 Note: this change turns on SSL_OP_NO_SSLv2 and 220 SSL_OP_NO_TICKET for the client. See doc/op/op.me 221 for details. 222 The option CipherList sets the list of ciphers for STARTTLS. 223 See ciphers(1) for possible values. 224 Do not log "STARTTLS: internal error: tls_verify_cb: ssl == NULL" 225 if a CRLFile is in use (and LogLevel is 14 or higher.) 226 Store a more specific TLS protocol version in ${tls_version} 227 instead of a generic one, e.g., TLSv1 instead of 228 TLSv1/SSLv3. 229 Properly set {client_port} value on little endian machines. 230 Patch from Kelsey Cummings of Sonic.net. 231 Per RFC 3848, indicate in the Received: header whether SSL or 232 SMTP AUTH was negotiated by setting the protocol clause 233 to ESMTPS, ESMTPA, or ESMTPSA instead of ESMTP. 234 If the 'C' flag is listed as TLSSrvOptions the requirement for the 235 TLS server to have a cert is removed. This only works 236 under very specific circumstances and should only be used 237 if the consequences are understood, e.g., clients 238 may not work with a server using this. 239 The options ClientCertFile, ClientKeyFile, ServerCertFile, and 240 ServerKeyFile can take a second file name, which must be 241 separated from the first with a comma (note: do not use 242 any spaces) to set up a second cert/key pair. This can 243 be used to have certs of different types, e.g., RSA 244 and DSA. 245 A new map type "arpa" is available to reverse an IP (IPv4 or IPv6) 246 address. It returns the string for the PTR lookup, but 247 without trailing {ip6,in-addr}.arpa. 248 New operation mode 'C' just checks the configuration file, e.g., 249 sendmail -C new.cf -bC 250 will perform a basic syntax/consistency check of new.cf. 251 The mailer flag 'I' is deprecated and will be removed in a 252 future version. 253 Allow local (not just TCP) socket connections to the server, e.g., 254 O DaemonPortOptions=Family=local, Addr=/var/mta/server.sock 255 can be used. 256 If the new option MaxQueueAge is set to a value greater than zero, 257 entries in the queue will be retried during a queue run 258 only if the individual retry time has been reached which 259 is doubled for each attempt. The maximum retry time is 260 limited by the specified value. 261 New DontBlameSendmail option GroupReadableDefaultAuthInfoFile 262 to relax requirement for DefaultAuthInfo file. 263 Reset timeout after receiving a message to appropriate value if 264 STARTTLS is in use. Based on patch by Kelsey Cummings 265 of Sonic.net. 266 Report correct error messages from the LDAP library for a range of 267 small negative return values covering those used by OpenLDAP. 268 Fix compilation with Berkeley DB 5.0 and 6.0. Patch from 269 Allan E Johannesen of Worcester Polytechnic Institute. 270 CONFIG: FEATURE(`nopercenthack') takes one parameter: reject or 271 nospecial which describes whether to disallow "%" in the 272 local part of an address. 273 DEVTOOLS: Fix regression in auto-detection of libraries when only 274 shared libraries are available. Problem reported by 275 Bryan Costales. 276 LIBMILTER: Mark communication socket as close-on-exec in case 277 a user's filter starts other applications. 278 Based on patch from Paul Howarth. 279 Portability: 280 SunOS 5.12 has changed the API for sigwait(2) to conform 281 with XPG7. Based on patch from Roger Faulkner of Oracle. 282 Deleted Files: 283 libsm/path.c 284 2858.14.9/8.14.9 2014/05/21 286 SECURITY: Properly set the close-on-exec flag for file descriptors 287 (except stdin, stdout, and stderr) before executing mailers. 288 Fix a misformed comment in conf.c: "/*" within comment 289 which may cause a compilation error on some systems. 290 Problem reported by John Beck of Oracle. 291 DEVTOOLS: Fix regression in auto-detection of libraries when only 292 shared libraries are available. Problem reported by 293 Bryan Costales. 294 2958.14.8/8.14.8 2014/01/26 296 Properly initialize all OpenSSL algorithms for versions before 297 OpenSSL 0.9.8o. Without this SHA2 algorithms may not 298 work properly, causing for example failures for certs 299 that use sha256WithRSAEncryption as signature algorithm. 300 When looking up hostnames, ensure only to return those records 301 for the requested family (AF_INET or AF_INET6). 302 On system that have NEEDSGETIPNODE and NETINET6 303 this may have failed and cause delivery problems. 304 Problem noted by Kees Cook. 305 A new mailer flag '!' is available to suppress an MH hack 306 that drops an explicit From: header if it is the 307 same as what sendmail would generate. 308 Add an FFR (for future release) to use uncompressed IPv6 addresses, 309 i.e., they will not contain "::". For example, instead 310 of ::1 it will be 0:0:0:0:0:0:0:1. This means that 311 configuration data (including maps, files, classes, 312 custom ruleset, etc) have to use the same format. 313 This will be turned on in 8.15. It can be enabled in 8.14 314 by compiling with: 315 APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_IPV6_FULL') 316 in your devtools/Site/site.config.m4 file. 317 Add an additional case for the WorkAroundBrokenAAAA check when 318 dealing with broken nameservers by ignoring SERVFAIL 319 errors returned on T_AAAA (IPv6) lookups at delivery time. 320 Problem noted by Pavel Timofeev of OCS. 321 If available, pass LOGIN_SETCPUMASK and LOGIN_SETLOGINCLASS to 322 setusercontext() on deliveries as a different user. 323 Patch from Edward Tomasz Napierala from FreeBSD. 324 Avoid compiler warnings from a change in Cyrus-SASL 2.1.25. 325 Patch from Hajimu UMEMOTO from FreeBSD. 326 Add support for DHParameters 2048-bit primes. 327 CONFIG: Accept IPv6 literals when evaluating the HELO/EHLO argument 328 in FEATURE(`block_bad_helo'). Suggested by Andrey Chernov. 329 LIBSMDB: Add a missing check for malloc() in libsmdb/smndbm.c. 330 Patch from Bill Parker. 331 LIBSMDB: Fix minor memory leaks in libsmdb/ if allocations 332 fail. Patch from John Beck of Oracle. 333 Portability: 334 Add support for Darwin 12.x and 13.x (Mac OS X 10.8 and 10.9). 335 On Linux use socklen_t as the type for the 3rd argument 336 for getsockname/getpeername if the glibc version is at 337 least 2.1. 338 Added Files: 339 devtools/OS/Darwin.12.x 340 devtools/OS/Darwin.13.x 341 3428.14.7/8.14.7 2013/04/21 343 Drop support for IPv4-mapped IPv6 addresses to prevent the MTA 344 from using a mapped address over a legitimate IPv6 address 345 and to enforce the proper semantics over the IPv6 346 connection. Problem noted by Ulrich Sporlein. 347 Fix a regression introduced in 8.14.6: the wrong list of 348 macros was sent to a milter in the EHLO stage. 349 Problem found by Fabrice Bellet, reported via RedHat 350 (Jaroslav Skarvada). 351 Fix handling of ORCPT parameter for DSNs: xtext decoding 352 was not performed and a wrong syntax check was applied 353 to the "addr-type" field. Problem noted by Dan Lukes 354 of Obludarium. 355 Fix handling of NUL characters in the MIME conversion functions 356 so that message bodies containing them will be sent 357 on properly. Note: this usually also affects mails 358 that are not converted as those functions are used 359 for other purposes too. Problem noted by Elchonon 360 Edelson of Lockheed Martin. 361 Do not perform "duplicate" elimination of recipients if they 362 resolve to the error mailer using a temporary failure 363 (4xy) via ruleset 0. Problem noted by Akira Takahashi 364 of IIJ. 365 CONTRIB: Updated version of etrn.pl script from John Beck 366 of Oracle. 367 Portability: 368 Unlike gcc, clang doesn't apply full prototypes to K&R 369 definitions. 370 3718.14.6/8.14.6 2012/12/23 372 Fix a regression introduced in 8.14.5: if a server offers 373 two AUTH lines, the MTA would not read them after 374 STARTTLS has been used and hence SMTP AUTH for 375 the client side would fail. Problem noted by Lena. 376 Do not cache hostnames internally in a non case sensitive way 377 as that may cause addresses to change from lower case 378 to upper case or vice versa. These header modifications 379 can cause problems with milters that rely on receiving 380 headers in the same way as they are being sent out such 381 as a DKIM signing milter. 382 If MaxQueueChildren is set then it was possible that new queue 383 runners could not be started anymore because an 384 internal counter was subject to a race condition. 385 If a milter decreases the timeout it waits for a communication 386 with the MTA, the MTA might experience a write() timeout. 387 In some situations, the resulting error might have been 388 ignored. Problem noted by Werner Wiethege. 389 Note: decreasing the communication timeout in a milter 390 should not be done without considering the potential 391 problems. 392 smfi_setsymlist() now properly sets the list of macros for 393 the milter which invoked it, instead of a global 394 list for all milters. Problem reported by 395 David Shrimpton of the University of Queensland. 396 If Timeout.resolver.retrans is set to a value larger than 20, 397 then resolver.retry was temporarily set to 0 for 398 gethostbyaddr() lookups. Now it is set to 1 instead. 399 Patch from Peter. 400 If sendmail could not lock the statistics file due to a system 401 error, and sendmail later sends a DSN for a mail that 402 triggered such an error, then sendmail tried to access 403 memory that was freed before (causing a crash on some 404 systems). Problem reported by Ryan Stone. 405 Do not log negative values for size= nor pri= to avoid confusing 406 log parsers, instead limit the values to LONG_MAX. 407 Account for an API change in newer versions of Cyrus-SASL. 408 Patch from Hajimu UMEMOTO from FreeBSD. 409 Do not try to resolve link-local addresses for IPv4 (just as it 410 is done for IPv6). Patch from John Beck of Oracle. 411 Improve logging of client and server STARTTLS connection failures 412 that may be due to incompatible cipher lists by including 413 the reason for the failure in a single log line. Suggested 414 by James Carey of Boeing. 415 Portability: 416 Add support for Darwin 11.x (Mac OS X 10.7). 417 Add support for SunOS 5.12 (aka Solaris 12). Patch from 418 John Beck of Oracle. 419 Added Files: 420 devtools/OS/Darwin.11.x 421 devtools/OS/SunOS.5.12 422 4238.14.5/8.14.5 2011/05/17 424 Do not cache SMTP extensions across connections as the cache 425 is based on hostname which may not be a unique identifier 426 for a server, i.e., different machines may have the 427 same hostname but provide different SMTP extensions. 428 Problem noted by Jim Hermann. 429 Avoid an out-of-bounds access in case a resolver reply for a DNS 430 map lookup returns a size larger than 1K. Based on a 431 patch from Dr. Werner Fink of SuSE. 432 If a job is aborted using the interrupt signal (e.g., control-C from 433 the keyboard), perform minimal cleanup to avoid invoking 434 functions that are not signal-safe. Note: in previous 435 versions the mail might have been queued up already 436 and would be delivered subsequently, now an interrupt 437 will always remove the queue files and thus prevent 438 delivery. 439 Per RFC 6176, when operating as a TLS client, do not offer SSLv2. 440 Since TLS session resumption is never used as a client, disable 441 use of RFC 4507-style session tickets. 442 Work around gcc4 versions which reverse 25 years of history and 443 no longer align char buffers on the stack, breaking calls 444 to resolver functions on strict alignment platforms. 445 Found by Stuart Henderson of OpenBSD. 446 Read at most two AUTH lines from a server greeting (up to two 447 lines are read because servers may use "AUTH mechs" and 448 "AUTH=mechs"). Otherwise a malicious server may exhaust 449 the memory of the client. Bug report by Nils of MWR 450 InfoSecurity. 451 Avoid triggering an assertion in the OpenLDAP code when the 452 connection to an LDAP server is lost while making a query. 453 Problem noted and patch provided by Andy Fiddaman. 454 If ConnectOnlyTo is set and sendmail is compiled with NETINET6 455 it would try to use an IPv6 address if an IPv4 (or 456 unparseable) address is specified. 457 If SASLv2 is used, make sure that the macro {auth_authen} is 458 stored in xtext format to avoid problems with parsing 459 it. Problem noted by Christophe Wolfhugel. 460 CONFIG: FEATURE(`ldap_routing') in 8.14.4 tried to add a missing 461 -T<TMPF> that is required, but failed for some cases 462 that did not use LDAP. This change has been undone 463 until a better solution can be implemented. Problem 464 found by Andy Fiddaman. 465 CONFIG: Add cf/ostype/solaris11.m4 for Solaris11 support. 466 Contributed by Casper Dik of Oracle. 467 CONTRIB: qtool.pl: Deal with H entries that do not have a 468 letter between the question marks. Patch from 469 Stefan Christensen. 470 DOC: Use a better description for the -i option in sendmail. 471 Patch from Mitchell Berger. 472 Portability: 473 Add support for Darwin 10.x (Mac OS X 10.6). 474 Enable HAVE_NANOSLEEP for FreeBSD 3 and later. Patch 475 from John Marshall. 476 Enable HAVE_NANOSLEEP for OpenBSD 4.3 and later. 477 Use new directory "/system/volatile" for PidFile on 478 Solaris 11. Patch from Casper Dik of Oracle. 479 Fix compilation on Solaris 11 (and maybe some other 480 OSs) when using OpenSSL 1.0. Based on patch from 481 Jan Pechanec of Oracle. 482 Set SOCKADDR_LEN_T and SOCKOPT_LEN_T to socklen_t 483 for Solaris 11. Patch from Roger Faulkner of Oracle. 484 New Files: 485 cf/ostype/solaris11.m4 486 4878.14.4/8.14.4 2009/12/30 488 SECURITY: Handle bogus certificates containing NUL characters 489 in CNs by placing a string indicating a bad certificate 490 in the {cn_subject} or {cn_issuer} macro. Patch inspired 491 by Matthias Andree's changes for fetchmail. 492 During the generation of a queue identifier an integer overflow 493 could occur which might result in bogus characters 494 being used. Based on patch from John Vannoy of 495 Pepperdine University. 496 The value of headers, e.g., Precedence, Content-Type, et.al., 497 was not processed correctly. Patch from Per Hedeland. 498 Between 8.11.7 and 8.12.0 the length limitation on a return 499 path was erroneously reduced from MAXNAME (256) to 500 MAXSHORTSTR (203). Patch from John Gardiner Myers 501 of Proofpoint; the problem was also noted by Steve 502 Hubert of University of Washington. 503 Prevent a crash when a hostname lookup returns a seemingly 504 valid result which contains a NULL pointer (this seems 505 to be happening on some Linux versions). 506 The process title was missing the current load average when 507 the MTA was delaying connections due to DelayLA. 508 Patch from Dick St.Peters of NetHeaven. 509 Do not reset the number of queue entries in shared memory if 510 only some of them are processed. 511 Fix overflow of an internal array when parsing some replies 512 from a milter. Problem found by Scott Rotondo 513 of Sun Microsystems. 514 If STARTTLS is turned off in the server (via M=S) then it 515 would not be initialized for use in the client either. 516 Patch from Kazuteru Okahashi of IIJ. 517 If a Diffie-Hellman cipher is selected for STARTTLS, the 518 handshake could fail with some TLS implementations 519 because the prime used by the server is not long enough. 520 Note: the initialization of the DSA/DH parameters for 521 the server can take a significant amount of time on slow 522 machines. This can be turned off by setting DHParameters 523 to none or a file (see doc/op/op.me). Patch from 524 Petr Lampa of the Brno University of Technology. 525 Fix handling of `b' modifier for DaemonPortOptions on little 526 endian machines for loopback address. Patch from 527 John Beck of Sun Microsystems. 528 Fix a potential memory leak in libsmdb/smdb1.c found by parfait. 529 Based on patch from Jonathan Gray of OpenBSD. 530 If a milter sets the reply code to "421" during the transfer 531 of the body, the SMTP server will terminate the SMTP session 532 with that error to match the behavior of the other callbacks. 533 Return EX_IOERR (instead of 0) if a mail submission fails due to 534 missing disk space in the mail queue. Based on patch 535 from Martin Poole of RedHat. 536 CONFIG: Using FEATURE(`ldap_routing')'s `nodomain' argument would 537 cause addresses not found in LDAP to be misparsed. 538 CONFIG: Using a CN restriction did not work for TLS_Clt as it 539 referred to a wrong macro. Patch from John Gardiner 540 Myers of Proofpoint. 541 CONFIG: The option relaytofulladdress of FEATURE(`access_db') 542 did not work if FEATURE(`relay_hosts_only') is used too. 543 Problem noted by Kristian Shaw. 544 CONFIG: The internal function lower() was broken and hence 545 strcasecmp() did not work either, which could cause 546 problems for some FEATURE()s if upper case arguments 547 were used. Patch from Vesa-Matti J Kari of the 548 University of Helsinki. 549 LIBMILTER: Fix internal check whether a milter application 550 is compiled against the same version of libmilter as 551 it is linked against (especially useful for dynamic 552 libraries). 553 LIBMILTER: Fix memory leak that occurred when smfi_setsymlist() 554 was used. Based on patch by Dan Lukes. 555 LIBMILTER: Document the effect of SMFIP_HDR_LEADSPC for filters 556 which add, insert, or replace headers. From Benjamin 557 Pineau. 558 LIBMILTER: Fix error messages which refer to "select()" to be 559 correct if SM_CONF_POLL is used. Based on patch from 560 John Nemeth. 561 LIBSM: Fix handling of LDAP search failures where the error is 562 carried in the search result itself, such as seen with 563 OpenLDAP proxy servers. 564 VACATION: Do not refer to a local variable outside its scope. 565 Based on patch from Mark Costlow of Southwest Cyberport. 566 Portability: 567 Enable HAVE_NANOSLEEP for SunOS 5.11. Patch from 568 John Beck of Sun Microsystems. 569 Drop NISPLUS from default SunOS 5.11 map definitions. 570 Patch from John Beck of Sun Microsystems. 571 5728.14.3/8.14.3 2008/05/03 573 During ruleset processing the generation of a key for a map 574 lookup and the parsing of the default value was broken 575 for some macros, e.g., $|, which caused the BlankSub 576 character to be inserted into the workspace and thus 577 failures, e.g., rules that should have matched did not. 578 8.14.2 caused a regression: it accessed (macro) storage which was 579 freed before. First instance of the problem reported by 580 Matthew Dillon of DragonFlyBSD; variations of the same 581 bug reported by Todd C. Miller of OpenBSD, Moritz 582 Jodeit, and Dave Hayes. 583 Improve pathname length checks for persistent host status. Patch 584 from Joerg Sonnenberger of DragonFlyBSD. 585 Reword misleading SMTP reply text for FEATURE(`badmx'). Problem 586 noted by Beth Halsema. 587 The read timeout was fixed to be Timeout.datablock if STARTTLS 588 was activated. This may cause problems if that value 589 is lowered from its default. Problem noted by Jens Elkner. 590 CONFIG: Using LOCAL_TLS_CLIENT caused the tls_client ruleset 591 to operate incorrectly. Problem found by Werner Wiethege. 592 LIBMILTER: Omitting some protocol steps via the xxfi_negotiate() 593 callback did not work properly. The patchlevel of 594 libmilter has been set to 1 so a milter can determine 595 whether libmilter contains this fix. 596 MAKEMAP: If a delimiter is specified (-t) use that also when 597 dumping a map. Patch from Todd C. Miller of OpenBSD. 598 Portability: 599 Add support for Darwin 9.x (Mac OS X 10.5). 600 Support shared libraries in Darwin 8 and 9. Patch from 601 Chris Behrens of Concentric. 602 Add support for SCO OpenServer 6, patch from Boyd Gerber. 603 DEVTOOLS: Clarify that confSHAREDLIBDIR requires a trailing slash. 604 Added Files: 605 devtools/OS/Darwin.9.x 606 devtools/OS/OSR.i386 607 6088.14.2/8.14.2 2007/11/01 609 If a message was queued and it contained 8 bit characters in 610 a From: or To: header, then those characters could be 611 "mistaken" for internal control characters during a queue 612 run and trigger various consistency checks. Problem 613 noted by Neil Rickert of Northern Illinois University. 614 If MaxMimeHeaderLength is set to a value greater than 0 (which 615 it is by default) then even if the Linelimit parameter 616 is 0, sendmail corrupted in the non-transfer-encoding 617 case every MAXLINE-1 characters. Patch from John Gardiner 618 Myers of Proofpoint. 619 Setting the suboption DeliveryMode for DaemonPortOptions did not 620 work in earlier 8.14 versions. 621 Note: DeliveryMode=interactive is silently converted to 622 background if a milter can reject or delete a recipient. 623 Prior to 8.14 this happened only if milter could delete 624 recipients. 625 ClientRate should trigger when the limit was exceeded (as 626 documented), not when it was reached. Patch from 627 John Beck of Sun Microsystems. 628 Force a queue run for -qGqueuegroup even if no runners are 629 specified (R=0) and forking (F=f) is requested. 630 When multiple results are requested for a DNS map lookup 631 (-z and -Z), return only those that are relevant for 632 the query (not also those in the "additional section".) 633 If the message transfer time to sendmail (when acting as server) 634 exceeds Timeout.queuewarn or Timeout.queuereturn and 635 the message is refused (by a milter), sendmail previously 636 created a delivery status notification (DSN). Patch 637 from Doug Heath of The Hertz Corporation. 638 A code change in Cyrus-SASL 2.1.22 for sasl_decode64() requires 639 the MTA to deal with some input (i.e., "=") itself. 640 Problem noted by Eliot Lear. 641 sendmail counted a delivery as successful if PIPELINING is 642 compiled in but not offered by the server and the 643 delivery failed temporarily. Patch from Werner Wiethege. 644 If getting the result of an LDAP query times out then close the 645 map so it will be reopened on the next lookup. This 646 should help "failover" configurations that specify more 647 than one LDAP server. 648 If check_compat returns $#discard then a "savemail panic" could 649 be triggered under some circumstances (e.g., requiring 650 a system which does not have the compile time flag 651 HASFLOCK set). Based on patch by Motonori Nakamura 652 of National Institute of Informatics, Japan. 653 If a milter rejected a recipient, the count for nrcpts= in the 654 logfile entry might have been wrong. Problem found by 655 Petra Humann of TU Dresden. 656 If a milter invoked smfi_chgfrom() where ESMTP arguments are not 657 NULL, the message body was lost. Patch from Motonori 658 Nakamura of National Institute of Informatics, Japan. 659 sendmail(8) had a bogus space in -qGname. Patch from Peng Haitao. 660 CONTRIB: buildvirtuser: Preserve ownership and permissions when 661 replacing files. 662 CONTRIB: buildvirtuser: Skip dot-files (e.g., .cvsignore) when 663 reading the /etc/mail/virtusers/ directory. 664 CONTRIB: buildvirtuser: Emit warnings instead of exiting where 665 appropriate. 666 LIBMILTER: Fix ABI backwards compatibility so milters compiled 667 against an older libmilter.so shared library can use an 668 8.14 libmilter.so shared library. 669 LIBMILTER: smfi_version() did not properly extract the patchlevel 670 from the version number, however, the returned value was 671 correct for the current libmilter version. 672 6738.14.1/8.14.1 2007/04/03 674 Even though a milter rejects a recipient the MTA will still keep 675 it in its list of recipients and deliver to it if the 676 transaction is accepted. This is a regression introduced 677 in 8.14.0 due to the change for SMFIP_RCPT_REJ. Bug 678 found by Andy Fiddaman. 679 The new DaemonPortOptions which begin with a lower case character 680 could not be set in 8.14.0. 681 If a server shut down the connection in response to a STARTTLS 682 command, sendmail would log a misleading error message 683 due to an internal inconsistency. Problem found by 684 Werner Wiethege. 685 Document how some sendmail.cf options change the behavior of mailq. 686 Noted by Paul Menchini of the North Carolina School of 687 Science and Mathematics. 688 CONFIG: Add confSOFT_BOUNCE m4 option for setting SoftBounce. 689 CONFIG: 8.14.0's RELEASE_NOTES failed to mention the addition 690 of the confMAX_NOOP_COMMANDS and confSHARED_MEMORY_KEY_FILE 691 m4 options for setting MaxNOOPCommands and 692 SharedMemoryKeyFile. 693 CONFIG: Add confMILTER_MACROS_EOH and confMILTER_MACROS_DATA m4 694 options for setting Milter.macros.eoh and Milter.macros.data. 695 CONTRIB: Use flock() and fcntl() in qtool.pl if necessary. 696 Patch from Daniel Carroll of Mesa State College. 697 LIBMILTER: Make sure an unknown command does not affect the 698 currently available macros. Problem found by Andy Fiddaman. 699 LIBMILTER: The MTA did not offer SMFIF_SETSYMLIST during option 700 negotiation. Problem reported by Bryan Costales. 701 LIBMILTER: Fix several minor errors in the documentation. 702 Patches from Bryan Costales. 703 PORTABILITY FIXES: 704 AIX 5.{1,2}: libsm/util.c failed to compile due to 705 redefinition of several macros, e.g., SIG_ERR. 706 Patch from Jim Pirzyk with assistance by Bob 707 Booth, University of Illinois at Urbana-Champaign. 708 Add support for QNX.6. Patch from Sean Boudreau of QNX 709 Software Systems. 710 New Files: 711 devtools/M4/depend/QNX6.m4 712 devtools/OS/QNX.6.x 713 include/sm/os/sm_os_qnx.h 714 715 New Files added in 8.14.0, but not shown in the release notes entry: 716 libmilter/docs/smfi_chgfrom.html 717 libmilter/docs/smfi_version.html 718 7198.14.0/8.14.0 2007/01/31 720 Header field values are now 8 bit clean. Notes: 721 - header field names are still restricted to 7 bit. 722 - RFC 2822 allows only 7 bit (US-ASCII) characters in 723 headers. 724 Preserve spaces after the colon in a header. Previously, any 725 number of spaces after the colon would be changed to 726 exactly one space. 727 In some cases of deeply nested aliases/forwarding, mail can 728 be silently lost. Moreover, the MaxAliasRecursion 729 limit may be reached too early, e.g., the counter 730 may be off by a factor of 4 in case of a sequence of 731 .forward files that refer to others. Patch from 732 Motonori Nakamura of Kyoto University. 733 Fix a regression in 8.13.8: if InputMailFilters is set then 734 "sendmail -bs" can trigger an assertion because the 735 hostname of the client is undefined. It is now set 736 to "localhost" for the xxfi_connect() callback. 737 Avoid referencing a freed variable during cleanup when terminating. 738 Problem reported and diagnosed by Joe Maimon. 739 New option HeloName to set the name for the HELO/EHLO command. 740 Patch from Nik Clayton. 741 New option SoftBounce to issue temporary errors (4xy) instead of 742 permanent errors (5xy). This can be useful for testing. 743 New suboptions for DaemonPortOptions to set them individually 744 per daemon socket: 745 DeliveryMode DeliveryMode 746 refuseLA RefuseLA 747 delayLA DelayLA 748 queueLA QueueLA 749 children MaxDaemonChildren 750 New option -K for LDAP maps to replace %1 through %9 in the 751 lookup key with the LDAP escaped contents of the 752 arguments specified in the map lookup. Loosely based 753 on patch from Wolfgang Hottgenroth. 754 Log the time after which a greet_pause delay triggered. Patch 755 from Nik Clayton. 756 If a client is rejected via TCP wrapper or some other check 757 performed by validate_connection() (in conf.c) then do 758 not also invoke greet_pause. Problem noted by Jim Pirzyk 759 of the University of Illinois at Urbana-Champaign. 760 If a client terminates the SMTP connection during a pause 761 introduced by greet_pause, then a misleading message 762 was logged previously. Problem noted by Vernon Schryver 763 et.al., patch from Matej Vela. 764 New command "mstat" for control socket to provide "machine 765 readable" status. 766 New named config file rule check_eom which is called at the end 767 of a message, its parameter is the size of the message. 768 If the macro {addr_type} indicates that the current address 769 is a header address it also distinguishes between 770 recipient and sender addresses (as it is done for 771 envelope addresses). 772 When a macro is set in check_relay, then its value is accessible 773 by all transactions in the same SMTP session. 774 Increase size of key for ldap lookups to 1024 (MAXKEY). 775 New option MaxNOOPCommands to override default of 20 for the 776 number of "useless" commands before the SMTP server will 777 slow down responding. 778 New option SharedMemoryKeyFile: if shared memory support is 779 enabled, the MTA can be asked to select a shared memory 780 key itself by setting SharedMemoryKey to -1 and specifying 781 a file where to store the selected key. 782 Try to deal with open HTTP proxies that are used to send spam 783 by recognizing some commands from them. If the first command 784 from the client is GET, POST, CONNECT, or USER, then the 785 connection is terminated immediately. 786 New PrivacyOptions noactualrecipient to avoid putting 787 X-Actual-Recipient lines in DSNs revealing the actual 788 account that addresses map to. Patch from Dan Harkless. 789 New options B, z, and Z for DNS maps: 790 -B: specify a domain that is always appended to queries. 791 -z: specify the delimiter at which to cut off the result of 792 a query if it is too long. 793 -Z: specify the maximum number of entries to be concatenated 794 to form the result of a lookup. 795 New target "check" in the Makefile of libsm: instead of running tests 796 implicitly while building libsm, they must be explicitly 797 started by using "make check". 798 Fixed some inconsistent checks for NULL pointers that have been 799 reported by the SATURN tool which has been developed by 800 Isil Dillig and Thomas Dillig of Stanford University. 801 Fix a potential race condition caused by a signal handler for 802 terminated child processes. Problem noted by David F. Skoll. 803 When a milter deleted a recipient, that recipient could cause a 804 queue group selection. This has been disabled as it was not 805 intended. 806 New operator 'r' for the arith map to return a random number. 807 Patch from Motonori Nakamura of Kyoto University. 808 New compile time option MILTER_NO_NAGLE to turn off the Nagle 809 algorithm for communication with libmilter ("cork" on Linux), 810 which may improve the communication performance on some 811 operating systems. Patch from John Gardiner Myers of 812 Proofpoint. 813 If sendmail received input that contained a CR without subsequent LF 814 (thus violating RFC 2821 (2.3.7)), it could previously 815 generate an additional blank line in the output as the last 816 line. 817 Restarting persistent queue runners by sending a HUP signal to 818 the "queue control process" (QCP) works now. 819 Increase the length of an input line to 12288 to deal with 820 really long lines during SMTP AUTH negotiations. 821 Problem noted by Werner Wiethege. 822 If ARPANET mode (-ba) was selected STARTTLS would fail (due to 823 a missing initialization call for that case). Problem 824 noted by Neil Rickert of Northern Illinois University. 825 If sendmail is linked against a library that initializes Cyrus-SASL 826 before sendmail did it (such as libnss-ldap), then SMTP AUTH 827 could fail for the sendmail client. A patch by Moritz Both 828 works around the API design flaw of Cyrus-SASLv2. 829 CONFIG: Make it possible to unset the StatusFile option by 830 undefining STATUS_FILE. By not setting StatusFile, 831 the MTA will not attempt to open a statistics file on 832 each delivery. 833 CONFIG: New FEATURE(`require_rdns') to reject messages from SMTP 834 clients whose IP address does not have proper reverse DNS. 835 Contributed by Neil Rickert of Northern Illinois University 836 and John Beck of Sun Microsystems. 837 CONFIG: New FEATURE(`block_bad_helo') to reject messages from SMTP 838 clients which provide a HELO/EHLO argument which is either 839 unqualified, or is one of our own names (i.e., the server 840 name instead of the client name). Contributed by Neil 841 Rickert of Northern Illinois University and John Beck of 842 Sun Microsystems. 843 CONFIG: New FEATURE(`badmx') to reject envelope sender addresses 844 (MAIL) whose domain part resolves to a "bad" MX record. 845 Based on contribution from William Dell Wisner. 846 CONFIG: New macros SMTP_MAILER_LL and RELAY_MAILER_LL to override 847 the maximum line length of the smtp mailers. 848 CONFIG: New option `relaytofulladdress' for FEATURE(`access_db') 849 to allow entries in the access map to be of the form 850 To:user@example.com RELAY 851 CONFIG: New subsuboptions eoh and data to specify the list of 852 macros a milter should receive at those stages in the 853 SMTP dialogue. 854 CONFIG: New option confHELO_NAME for HeloName to set the name 855 for the HELO/EHLO command. 856 CONFIG: dnsbl and enhdnsbl can now also discard or quarantine 857 messages by using those values as second argument. 858 Patches from Nelson Fung. 859 CONTRIB: cidrexpand uses a hash symbol as comment character and 860 ignores everything after it unless it is in quotes or 861 preceded by a backslash. 862 DEVTOOLS: New macro confMKDIR: if set to a program that creates 863 directories, then it used for "make install" to create 864 the required installation directories. 865 DEVTOOLS: New macro confCCLINK to specify the linker to use for 866 executables (defaults to confCC). 867 LIBMILTER: A new version of the milter API has been created that 868 has several changes which are listed below and documented 869 in the webpages reachable via libmilter/docs/index.html. 870 LIBMILTER: The meaning of the version macro SMFI_VERSION has been 871 changed. It now refers only to the version of libmilter, 872 not to the protocol version (which is used only internally, 873 it is not user/milter-programmer visible). Additionally, 874 a version function smfi_version() has been introduced such 875 that a milter program can check the libmilter version also 876 at runtime which is useful if a shared library is used. 877 LIBMILTER: A new callback xxfi_negotiate() can be used to 878 dynamically (i.e., at runtime) determine the available 879 protocol actions and features of the MTA and also to 880 specify which of these a milter wants to use. This allows 881 for more flexibility than hardcoding these flags in the 882 xxfi_flags field of the smfiDesc structure. 883 LIBMILTER: A new callback xxfi_data() is available so milters 884 can act on the DATA command. 885 LIBMILTER: A new callback xxfi_unknown() is available so milters 886 can receive also unknown SMTP commands. 887 LIBMILTER: A new return code SMFIS_NOREPLY has been added which 888 can be used by the xxfi_header() callback provided the 889 milter requested the SMFIP_NOHREPL protocol action. 890 LIBMILTER: The new return code SMFIS_SKIP can be used in the 891 xxfi_body() callback to skip over further body chunks 892 and directly advance to the xxfi_eom() callback. This 893 is useful if a milter can make a decision based on the 894 body chunks it already received without reading the entire 895 rest of the body and the milter wants to invoke functions 896 that are only available from the xxfi_eom() callback. 897 LIBMILTER: A new function smfi_addrcpt_par() can be used to add 898 new recipients including ESMTP parameters. 899 LIBMILTER: A new function smfi_chgfrom() can be used to change the 900 envelope sender including ESMTP parameters. 901 LIBMILTER: A milter can now request to be informed about rejected 902 recipients (RCPT) too. This requires to set the protocol 903 flag SMFIP_RCPT_REJ during option negotiation. Whether 904 a RCPT has been rejected can be checked by comparing the 905 value of the macro {rcpt_mailer} with "error". 906 LIBMILTER: A milter can now override the list of macros that it 907 wants to receive from the MTA for each protocol step 908 by invoking the function smfi_setsymlist() during option 909 negotiation. 910 LIBMILTER: A milter can receive header field values with all 911 leading spaces by requesting the SMFIP_HDR_LEADSPC 912 protocol action. Also, if the flag is set then the MTA 913 does not add a leading space to headers that are added, 914 inserted, or replaced. 915 LIBMILTER: If a milter sets the reply code to "421" for the HELO 916 callback, the SMTP server will terminate the SMTP session 917 with that error to match the behavior of all other callbacks. 918 New Files: 919 cf/feature/badmx.m4 920 cf/feature/block_bad_helo.m4 921 cf/feature/require_rdns.m4 922 devtools/M4/UNIX/check.m4 923 include/sm/misc.h 924 include/sm/sendmail.h 925 include/sm/tailq.h 926 libmilter/docs/smfi_addrcpt_par.html 927 libmilter/docs/smfi_setsymlist.html 928 libmilter/docs/xxfi_data.html 929 libmilter/docs/xxfi_negotiate.html 930 libmilter/docs/xxfi_unknown.html 931 libmilter/example.c 932 libmilter/monitor.c 933 libmilter/worker.c 934 libsm/memstat.c 935 libsm/t-memstat.c 936 libsm/t-qic.c 937 libsm/util.c 938 sendmail/daemon.h 939 sendmail/map.h 940 9418.13.8/8.13.8 2006/08/09 942 Fix a regression in 8.13.7: if shared memory is activated, then 943 the server can erroneously report that there is 944 insufficient disk space. Additionally make sure that 945 an internal variable is set properly to avoid those 946 misleading errors. Based on patch from Steve Hubert 947 of University of Washington. 948 Fix a regression in 8.13.7: the PidFile could be removed after 949 the process that forks the daemon exited, i.e., if 950 sendmail -bd is invoked. Problem reported by Kan Sasaki 951 of Fusion Communications Corp. and Werner Wiethege. 952 Avoid opening qf files if QueueSortOrder is "none". Patch from 953 David F. Skoll. 954 Avoid a crash when finishing due to referencing a freed variable. 955 Problem reported and diagnosed by Moritz Jodeit. 956 CONTRIB: cidrexpand now deals with /0 by issuing the entire IPv4 957 range (0..255). 958 LIBMILTER: The "hostname" argument of the xxfi_connect() callback 959 previously was the equivalent of {client_ptr}. However, 960 this did not match the documentation of the function, hence 961 it has been changed to {client_name}. See doc/op/op.me 962 about these macros. 963 9648.13.7/8.13.7 2006/06/14 965 A malformed MIME structure with many parts can cause sendmail to 966 crash while trying to send a mail due to a stack overflow, 967 e.g., if the stack size is limited (ulimit -s). This 968 happens because the recursion of the function mime8to7() 969 was not restricted. The function is called for MIME 8 to 970 7 bit conversion and also to enforce MaxMimeHeaderLength. 971 To work around this problem, recursive calls are limited to 972 a depth of MAXMIMENESTING (20); message content after this 973 limit is treated as opaque and is not checked further. 974 Problem noted by Frank Sheiness. 975 The changes to the I/O layer in 8.13.6 caused a regression for 976 SASL mechanisms that use the security layer, e.g., 977 DIGEST-MD5. Problem noted by Robert Stampfli. 978 If a timeout occurs while reading a message (during the DATA phase) 979 a df file might have been left behind in the queue. 980 This was another side effect of the changes to the I/O 981 layer made in 8.13.6. 982 Several minor problems have been fixed that were found by a 983 Coverity scan of sendmail 8 as part of the NetBSD 984 distribution. See http://scan.coverity.com/ 985 Note: the scan generated also a lot of "false positives", 986 e.g., "error" reports about situations that cannot happen. 987 Most of those code places are marked with lint(1) comments 988 like NOTREACHED, but Coverity does not understand those. 989 Hence an explicit assertion has been added in some cases 990 to avoid those false positives. 991 If the start of the sendmail daemon fails due to a configuration 992 error then in some cases shared memory segments or pid 993 files were not removed. 994 If DSN support is disabled via access_db, then related ESMTP 995 parameters for MAIL and RCPT should be rejected. Problem 996 reported by Akihiro Sagawa. 997 Enabling zlib compression in OpenSSL 0.9.8[ab] breaks the padding 998 bug work-around. Hence if sendmail is linked against 999 either of these versions and compression is available, 1000 the padding bug work-around is turned off. Based on 1001 patch from Victor Duchovni of Morgan Stanley. 1002 CONFIG: FEATURE(`dnsbl') and FEATURE(`enhdnsbl') used 1003 blackholes.mail-abuse.org as default domain for lookups, 1004 however, that list is no longer available. To avoid 1005 further problems, no default value is available anymore, 1006 but an argument must be specified. 1007 Portability: 1008 Fix compilation on OSF/1 for sfsasl.c. Patch from 1009 Pieter Bowman of the University of Utah. 1010 10118.13.6/8.13.6 2006/03/22 1012 SECURITY: Replace unsafe use of setjmp(3)/longjmp(3) in the server 1013 and client side of sendmail with timeouts in the libsm I/O 1014 layer and fix problems in that code. Also fix handling of 1015 a buffer in sm_syslog() which could have been used as an 1016 attack vector to exploit the unsafe handling of 1017 setjmp(3)/longjmp(3) in combination with signals. 1018 Problem detected by Mark Dowd of ISS X-Force. 1019 Handle theoretical integer overflows that could triggered if 1020 the server accepted headers larger than the maximum 1021 (signed) integer value. This is prevented in the default 1022 configuration by restricting the size of a header, and on 1023 most machines memory allocations would fail before reaching 1024 those values. Problems found by Phil Brass of ISS. 1025 If a server returns 421 for an RSET command when trying to start 1026 another transaction in a session while sending mail, do 1027 not trigger an internal consistency check. Problem found 1028 by Allan E Johannesen of Worcester Polytechnic Institute. 1029 If a server returns a 5xy error code (other than 501) in response 1030 to a STARTTLS command despite the fact that it advertised 1031 STARTTLS and that the code is not valid according to RFC 1032 2487 treat it nevertheless as a permanent failure instead 1033 of a protocol error (which has been changed to a 1034 temporary error in 8.13.5). Problem reported by Jeff 1035 A. Earickson of Colby College. 1036 Clear SMTP state after a HELO/EHLO command. Patch from John 1037 Myers of Proofpoint. 1038 Observe MinQueueAge option when gathering entries from the queue 1039 for sorting etc instead of waiting until the entries are 1040 processed. Patch from Brian Fundakowski Feldman. 1041 Set up TLS session cache to properly handle clients that try to 1042 resume a stored TLS session. 1043 Properly count the number of (direct) child processes such that 1044 a configured value (MaxDaemonChildren) is not exceeded. 1045 Based on patch from Attila Bruncsak. 1046 LIBMILTER: Remove superfluous backslash in macro definition 1047 (libmilter.h). Based on patch from Mike Kupfer of 1048 Sun Microsystems. 1049 LIBMILTER: Don't try to set SO_REUSEADDR on UNIX domain sockets. 1050 This generates an error message from libmilter on 1051 Solaris, though other systems appear to just discard the 1052 request silently. 1053 LIBMILTER: Deal with sigwait(2) implementations that return 1054 -1 and set errno instead of returning an error code 1055 directly. Patch from Chris Adams of HiWAAY Informations 1056 Services. 1057 Portability: 1058 Fix compilation checks for closefrom(3) and statvfs(2) 1059 in NetBSD. Problem noted by S. Moonesamy, patch from 1060 Andrew Brown. 1061 10628.13.5/8.13.5 2005/09/16 1063 Store the filesystem identifier of the df/ subdirectory (if it 1064 exists) in an internal structure instead of the base 1065 directory. This structure is used decide whether there 1066 is enough free disk space when selecting a queue, hence 1067 without this change queue selection could fail if a df/ 1068 subdirectory exists and is on a different filesystem 1069 than the base directory. 1070 Use the queue index of the df file (instead of the qf file) for 1071 checking whether a link(2) operation can be used to split 1072 an envelope across queue groups. Problem found by 1073 Werner Wiethege. 1074 If the list of items in the queue is larger than the maximum 1075 number of items to process, sort the queue first and 1076 then cut the list off instead of the other way around. 1077 Patch from Matej Vela of Rudjer Boskovic Institute. 1078 Fix helpfile to show full entry for ETRN. Problem noted by 1079 Penelope Fudd, patch from Neil Rickert of Northern Illinois 1080 University. 1081 FallbackSmartHost should also be tried on temporary errors. 1082 From John Beck of Sun Microsystems. 1083 When a server responds with 421 to the STARTTLS command then treat 1084 it as a temporary error, not as protocol error. Problem 1085 noted by Andrey J. Melnikoff. 1086 Properly define two functions in libsm as static because their 1087 prototype used static too. Patch from Peter Klein. 1088 Fix syntax errors in helpfile for MAIL and RCPT commands. 1089 LIBMILTER: When smfi_replacebody() is called with bodylen equals 1090 zero then do not silently ignore that call. Patch from 1091 Gurusamy Sarathy of Active State. 1092 LIBMILTER: Recognize "421" also in a multi-line reply to terminate 1093 the SMTP session with that error. Fix from Brian Kantor. 1094 Portability: New option HASSNPRINTF which can be set if the OS 1095 has a properly working snprintf(3) to get rid 1096 of the last two (safe) sprintf(3) calls in the 1097 source code. 1098 Add support for AIX 5.3. 1099 Add support for SunOS 5.11 (aka Solaris 11). 1100 Add support for Darwin 8.x. Patch from Lyndon Nerenberg. 1101 OpenBSD 3.7 has removed support for NETISO. 1102 CONFIG: Add OSTYPE(freebsd6) for FreeBSD 6.X. 1103 Set DontBlameSendmail to AssumeSafeChown and 1104 GroupWritableDirPathSafe for OSTYPE(darwin). 1105 Patch from Lyndon Nerenberg. 1106 Some features still used 4.7.1 as enhanced status code which 1107 was supposed to be eliminated in 8.13.0 because some 1108 broken systems misinterpret it as a permanent error. 1109 Patch from Matej Vela of Rudjer Boskovic Institute. 1110 Some default values in a generated cf file did not match 1111 the defaults in the sendmail binary. Problem noted 1112 by Mike Pechkin. 1113 New Files: 1114 cf/ostype/freebsd6.m4 1115 devtools/OS/AIX.5.3 1116 devtools/OS/Darwin.8.x 1117 devtools/OS/SunOS.5.11 1118 include/sm/time.h 1119 11208.13.4/8.13.4 2005/03/27 1121 The bug fixes in 8.13.3 for connection handling uncovered a 1122 different error which could result in connections that 1123 stay in CLOSE_WAIT state due to a variable that was not 1124 properly initialized. Problem noted by Michael Sims. 1125 Deal with empty hostnames in hostsignature(). This bug could lead 1126 to an endless loop when doing LMTP deliveries to another 1127 host. Problem first reported by Martin Lathoud and 1128 tracked down by Gael Roualland. 1129 Make sure return parameters are initialized in getmxrr(). Problem 1130 found by Gael Roualland using valgrind. 1131 If shared memory is used and the RunAsUser option is set, then the 1132 owner and group of the shared memory segment is set to 1133 the ids specified RunAsUser and the access mode is set 1134 to 0660 to allow for updates by sendmail processes. 1135 The number of queue entries that is (optionally) kept in shared 1136 memory was wrong in some cases, e.g., envelope splitting 1137 and bounce generation. 1138 Undo a change made in 8.13.0 to silently truncate long strings 1139 in address rewriting because the message can be triggered 1140 for header checks where long strings are legitimate. 1141 Problem reported by Mary Verge DeSisto, and tracked 1142 down with the help of John Beck of Sun Microsystems. 1143 The internal stab map did not obey the -m flag. Patch from 1144 Rob McMahon of Warwick University, England. 1145 The socket map did not obey the -f flag. Problem noted by 1146 Dan Ringdahl, forwarded by Andrzej Filip. 1147 The addition of LDAP recursion in 8.13.0 broke enforcement of 1148 the LDAP map -1 argument which tells the MTA to only 1149 return success if and only if a single LDAP match is found. 1150 Add additional error checks in the MTA for milter communication 1151 to avoid a possible segmentation fault. Based on patch 1152 by Joe Maimon. 1153 Do not trigger an assertion if X509_digest() returns success but 1154 does not assign a value to its output parameter. Based 1155 on patch by Brian Kantor. 1156 Add more checks when resetting internal AUTH data (applies only 1157 to Cyrus SASL version 2). Otherwise an SMTP session might 1158 be dropped after an AUTH failure. 1159 Portability: 1160 Add LA_LONGLONG as valid LA_TYPE type for systems that use 1161 "long long" to read load average data, e.g., 1162 AIX 5.1 in 32 bit mode. Note: this has to be set 1163 "by hand", it is not (yet) automatically detected. 1164 Problem noted by Burak Bilen. 1165 Use socklen_t for accept(), etc. on AIX 5.x. This should 1166 fix problems when compiling in 64 bit mode. 1167 Problem first reported by Harry Meiert of 1168 University of Bremen. 1169 New Files: 1170 include/sm/sem.h 1171 libsm/sem.c 1172 libsm/t-sem.c 1173 11748.13.3/8.13.3 2005/01/11 1175 Enhance handling of I/O errors, especially EOF, when STARTTLS 1176 is active. 1177 Make sure a connection is not reused after it has been closed 1178 due to a 421 error. Problem found by Allan E Johannesen 1179 of Worcester Polytechnic Institute. 1180 Avoid triggering an assertion when sendmail is interrupted while 1181 closing a connection. Problem found by Allan E Johannesen 1182 of Worcester Polytechnic Institute. 1183 Regression: a change in 8.13.2 caused sendmail not to try the 1184 next MX host (or FallbackMXhost if configured) when, at 1185 connection open, the current server returns a 4xy or 5xy 1186 SMTP reply code. Problem noted by Mark Tranchant. 1187 11888.13.2/8.13.2 2004/12/15 1189 Do not split the first header even if it exceeds the internal 1190 buffer size. Previously a part of such a header would 1191 end up in the body of the message. Problem noted by 1192 Simple Nomad of BindView. 1193 Do not complain about "cataddr: string too long" when checking 1194 headers that do not contain RFC 2822 addresses. 1195 Problem noted by Rich Graves of Brandeis University. 1196 If a server returns a 421 reply to the RSET command between 1197 message deliveries, do not attempt to deliver any more 1198 messages on that connection. This prevents bogus "Bad 1199 file number" recipient status. Problem noted by 1200 Allan E Johannesen of Worcester Polytechnic Institute. 1201 Allow trailing white space in EHLO command as recommended by RFC 1202 2821. Problem noted by Ralph Santagato of SBC Services. 1203 Deal with clients which use AUTH but negotiate a smaller buffer size 1204 for data exchanges than the value used by sendmail, e.g., 1205 Cyrus IMAP lmtp server. Based on patch by Jamie Clark. 1206 When passing ESMTP arguments for RCPT to a milter, do not cut 1207 them off at a comma. Problem noted by Krzysztof Oledzki. 1208 Add more logging to milter change header functions to 1209 complement existing logging. Based on patch from 1210 Gurusamy Sarathy of Active State. 1211 Include <lber.h> in include/sm/config.h when LDAPMAP is defined. 1212 Patch from Edgar Hoch of the University of Stuttgart. 1213 Fix DNS lookup if IPv6 is enabled when converting an IP address 1214 to a hostname for use with SASL. Problem noted by Ken Jones; 1215 patch from Hajimu UMEMOTO. 1216 CONFIG: For consistency enable MODIFY_MAILER_FLAGS for the prog 1217 mailer. Patch from John Beck of Sun Microsystems. 1218 LIBMILTER: It was possible that xxfi_abort() was called after 1219 xxfi_eom() for a message if some timeouts were triggered. 1220 Patch from Alexey Kravchuk. 1221 LIBMILTER: Slightly rearrange mutex use in listener.c to allow 1222 different threads to call smfi_opensocket() and smfi_main(). 1223 Patch from Jordan Ritter of Cloudmark. 1224 MAIL.LOCAL: Properly terminate MBDB before exiting. Problem 1225 noted by Nelson Fung. 1226 MAIL.LOCAL: make strip-mail.local used a wrong path to access 1227 mail.local. Problem noted by William Park. 1228 VACATION: Properly terminate MBDB before exiting. Problem noted 1229 by Nelson Fung. 1230 Portability: 1231 Add support for DragonFly BSD. 1232 New Files: 1233 cf/ostype/dragonfly.m4 1234 devtools/OS/DragonFly 1235 include/sm/os/sm_os_dragonfly.h 1236 Deleted Files: 1237 libsm/vsscanf.c 1238 12398.13.1/8.13.1 2004/07/30 1240 Using the default AliasFile ldap: specification would cause the 1241 objectClasses of the LDAP response to be included in the 1242 alias expansion. Problem noted by Brenden Conte of 1243 Rensselaer Polytechnic Institute. 1244 Fix support for a fallback smart host for system where DNS is 1245 (partially) available. From John Beck of Sun Microsystems. 1246 Fix SuperSafe=PostMilter behavior when a milter replaces a body 1247 but the data file is not yet stored on disk because it is 1248 smaller than the size of the memory buffer. Problem noted 1249 by David Russell. 1250 Fix certificate revocation list support; if a CRL was specified 1251 but the other side presented a cert that was signed by 1252 a different (trusted) CA than the one which issued the CRL, 1253 verification would always fail. Problem noted by Al Smith. 1254 Run mailer programs as the RunAsUser when RunAsUser is set and 1255 the F=S mailer flag is set without a U= mailer equate. 1256 Problem noted by John Gardiner Myers of Proofpoint. 1257 ${nbadrcpts} was off by one if BadRcptThrottle is zero. 1258 Patch from Sung-hoon Choi of DreamWiz Inc. 1259 CONFIG: Emit a warning if FEATURE(`access_db') is used after 1260 FEATURE(`greet_pause') because then the latter will not 1261 use the access map. Note: if no default value is given 1262 for FEATURE(`greet_pause') then it issues an error if 1263 FEATURE(`access_db') is not specified before it. 1264 Problem noted by Alexander Dalloz of University of 1265 Bielefeld. 1266 CONFIG: Invoke ruleset Local_greet_pause if FEATURE(`greet_pause') 1267 is used to give more flexibility for local changes. 1268 Portability: 1269 Fix a 64 bit problem in the socket map code. Problem 1270 noted by Geoff Adams. 1271 NetBSD 2.0F has closefrom(3). Patch from Andrew Brown. 1272 NetBSD can use sysctl(3) to get the number of CPUs in 1273 a system. Patch from Andrew Brown. 1274 Add a README file in doc/op/ to explain potential 1275 incompatibilities with various *roff related 1276 tools. Problem tracked down by Per Hedeland. 1277 New Files: 1278 doc/op/README 1279 12808.13.0/8.13.0 2004/06/20 1281 Do not include AUTH data in a bounce to avoid leaking confidential 1282 information. See also cf/README about MSP and the section 1283 "Providing SMTP AUTH Data when sendmail acts as Client". 1284 Problem noted by Neil Rickert of Northern Illinois 1285 University. 1286 Fix compilation error in libsm/clock.c for -D_FFR_SLEEP_USE_SELECT=n 1287 and -DSM_CONF_SETITIMER=0. Problem noted by Juergen Georgi 1288 of RUS University of Stuttgart. 1289 Fix bug in conversion from 8bit to quoted-printable. Problem found 1290 by Christof Haerens, patch from Per Hedeland. 1291 Add support for LDAP recursion based on types given to attribute 1292 specifications in an LDAP map definition. This allows 1293 LDAP queries to return a new query, a DN, or an LDAP 1294 URL which will in turn be queried. See the ``LDAP 1295 Recursion'' section of doc/op/op.me for more information. 1296 Based on patch from Andrew Baucom. 1297 Extend the default LDAP specifications for AliasFile 1298 (O AliasFile=ldap:) and file classes (F{X}@LDAP) to 1299 include support for LDAP recursion via new attributes. 1300 See ``USING LDAP FOR ALIASES, MAPS, and CLASSES'' section 1301 of cf/README for more information. 1302 New option for LDAP maps: the -w option allows you to specify the 1303 LDAP API/protocol version to use. The default depends on 1304 the LDAP library. 1305 New option for LDAP maps: the -H option allows you to specify an 1306 LDAP URI instead of specifying the LDAP server via -h host 1307 and -p port. This also allows for the use of LDAP over 1308 SSL and connections via named sockets if your LDAP 1309 library supports it. 1310 New compile time flag SM_CONF_LDAP_INITIALIZE: set this if 1311 ldap_initialize(3) is available (and LDAPMAP is set). 1312 If MaxDaemonChildren is set and a command is repeated too often 1313 during a SMTP session then terminate it just like it is 1314 done for too many bad SMTP commands. 1315 Basic connection rate control support has been added: the daemon 1316 maintains the number of incoming connections per client 1317 IP address and total in the macros {client_rate} and 1318 {total_rate}, respectively. These macros can be used 1319 in the cf file to impose connection rate limits. 1320 A new option ConnectionRateWindowSize (default: 60s) 1321 determines the length of the interval for which the 1322 number of connections is stored. Based on patch from 1323 Jose Marcio Martins da Cruz, Ecole des Mines de Paris. 1324 Add optional protection from open proxies and SMTP slammers which 1325 send SMTP traffic without waiting for the SMTP greeting. 1326 If enabled by the new ruleset greet_pause (see 1327 FEATURE(`greet_pause')), sendmail will wait the specified 1328 amount of time before sending the initial 220 SMTP 1329 greeting. If any traffic is received before then, a 554 1330 SMTP response is sent and all SMTP commands are rejected 1331 during that connection. 1332 If 32 NOOP (or unknown/bad) commands are issued by a client the SMTP 1333 server could sleep for a very long time. Fix based on 1334 patch from Tadashi Kobayashi of IIJ. 1335 Fix a potential memory leak in persistent queue runners if the 1336 number of entries in the queue exceeds the limit of jobs. 1337 Problem noted by Steve Hubert of University of Washington. 1338 Do not use 4.7.1 as enhanced status code because some broken systems 1339 misinterpret it as a permanent error. 1340 New value for SuperSafe: PostMilter which will delay fsync() until 1341 all milters accepted the mail. This can increase 1342 performance if many mails are rejected by milters due to 1343 body scans. Based on patch from David F. Skoll. 1344 New macro {msg_id} which contains the value of the Message-Id: 1345 header, whether provided by the client or generated by 1346 sendmail. 1347 New macro {client_connections} which contains the number of open 1348 connections in the SMTP server for the client IP address. 1349 Based on patch from Jose Marcio Martins da Cruz, Ecole des 1350 Mines de Paris. 1351 sendmail will now remove its pidfile when it exits. This was done 1352 to prevent confusion caused by running sendmail stop 1353 scripts two or more times, where the second and subsequent 1354 runs would report misleading error messages about sendmail's 1355 pid no longer existing. See section 1.3.15 of doc/op/op.me 1356 for a discussion of the implications of this, including 1357 how to correct broken scripts which may have depended on 1358 the old behavior. From John Beck of Sun Microsystems. 1359 Support per-daemon input filter lists which override the default 1360 filter list specified in InputMailFilters. The filters 1361 can be listed in the I= equate of DaemonPortOptions. 1362 Do not add all domain prefixes of the hostname to class 'w'. If 1363 your configuration relies on this behavior, you have to 1364 add those names to class 'w' yourself. Problem noted 1365 by Sander Eerkes. 1366 Support message quarantining in the mail queue. Quarantined 1367 messages are not run on normal queue displays or runs 1368 unless specifically requested with -qQ. Quarantined queue 1369 files are named with an hf prefix instead of a qf prefix. 1370 The -q command line option now can specify which queue to display 1371 or run. -qQ operates on quarantined queue items. -qL 1372 operates on lost queue items. 1373 Restricted mail queue runs and displays can be done based on the 1374 quarantined reason using -qQtext to run or display 1375 quarantined items if the quarantine reason contains the 1376 given text. Similarly, -q!Qtext will run or display 1377 quarantined items which do not have the given text in the 1378 quarantine reason. 1379 Items in the queue can be quarantined or unquarantined using the 1380 new -Q option. See doc/op/op.me for more information. 1381 When displaying the quarantine mailq with 'mailq -qQ', the 1382 quarantine reason is shown in a new line prefixed by 1383 "QUARANTINE:". 1384 A new error code for the $#error mailer, $@ quarantine, can be used 1385 to quarantine messages in check_* (except check_compat) and 1386 header check rulesets. The $: of the mailer triplet will 1387 be used for the quarantine reason. 1388 Add a new quarantine count to the mailstats collected. 1389 Add a new macro ${quarantine} which is the quarantine reason for a 1390 message if it is quarantined. 1391 New map type "socket" for a trivial query protocol over UNIX domain 1392 or TCP sockets (requires compile time option SOCKETMAP). 1393 See sendmail/README and doc/op/op.me for details as well as 1394 socketmapServer.pl and socketmapClient.pl in contrib. 1395 Code donated by Bastiaan Bakker of LifeLine Networks. 1396 Define new macro ${client_ptr} which holds the result of the PTR 1397 lookup for the client IP address. Note: this is the same 1398 as ${client_name} if and only if ${client_resolve} is OK. 1399 Add a new macro ${nbadrcpts} which contains the number of bad 1400 recipients received so far in a transaction. 1401 Call check_relay with the value of ${client_name} to deal with bogus 1402 DNS entries. See also FEATURE(`use_client_ptr'). Problem 1403 noted by Kai Schlichting. 1404 Treat Delivery-Receipt-To: headers the same as Return-Receipt-To: 1405 headers (turn them into DSNs). Delivery-Receipt-To: is 1406 apparently used by SIMS (Sun Internet Mail System). 1407 Enable connection caching for LPC mailers. Patch from Christophe 1408 Wolfhugel of France Telecom Oleane. 1409 Do not silently truncate long strings in address rewriting. 1410 Add support for Cyrus SASL version 2. From Kenneth Murchison of 1411 Oceana Matrix Ltd. 1412 Add a new AuthOption=m flag to require the use of mechanisms which 1413 support mutual authentication. From Kenneth Murchison of 1414 Oceana Matrix Ltd. 1415 Fix logging of TLS related problems (introduced in 8.12.11). 1416 The macros {auth_author} and {auth_authen} are stored in xtext 1417 format just like the STARTTLS related macros to avoid 1418 problems with parsing them. Problem noted by Pierangelo 1419 Masarati of SysNet s.n.c. 1420 New option AuthRealm to set the authentication realm that is 1421 passed to the Cyrus SASL library. Patch from Gary Mills 1422 of the University of Manitoba. 1423 Enable AUTH mechanism EXTERNAL if STARTTLS verification was 1424 successful, otherwise relaying would be allowed if 1425 EXTERNAL is listed in TRUST_AUTH_MECH() and STARTTLS 1426 is active. 1427 Add basic support for certificate revocation lists. Note: if a 1428 CRLFile is specified but the file is unusable, STARTTLS 1429 is disabled. Based on patch by Ralf Hornik. 1430 Enable workaround for inconsistent Cyrus SASLv1 API for mechanisms 1431 DIGEST-MD5 and LOGIN. 1432 Write pid to file also if sendmail only acts as persistent queue 1433 runner. Proposed by Gary Mills of the University of Manitoba. 1434 Keep daemon pid file(s) locked so other daemons don't try to 1435 overwrite each other's pid files. 1436 Increase maximum length of logfile fields for {cert_subject} and 1437 {cert_issuer} from 128 to 256. Requested by Christophe 1438 Wolfhugel of France Telecom. 1439 Log the TLS verification message on the STARTTLS= log line at 1440 LogLevel 12 or higher. 1441 If the MSP is invoked with the verbose option (-v) then it will 1442 try to use the SMTP command VERB to propagate this option 1443 to the MTA which in turn will show the delivery just like 1444 it was done before the default 8.12 separation of MSP and 1445 MTA. Based on patch by Per Hedeland. 1446 If a daemon is refusing connections for longer than the time specified 1447 by the new option RejectLogInterval (default: 3 hours) due 1448 to high load, log this information. Patch from John Beck 1449 of Sun Microsystems. 1450 Remove the ability for non-trusted users to raise the value of 1451 CheckpointInterval on the command line. 1452 New mailer flag 'B' to strip leading backslashes, which is a 1453 subset of the functionality of the 's' flag. 1454 New mailer flag 'W' to ignore long term host status information. 1455 Patch from Juergen Georgi of RUS University of Stuttgart. 1456 Enable generic mail filter API (milter) by default. To turn 1457 it off, add -DMILTER=0 to the compile time options. 1458 An internal SMTP session discard flag was lost after an RSET/HELO/EHLO 1459 causing subsequent messages to be sent instead of being 1460 discarded. This also caused milter callbacks to be called 1461 out of order after the SMTP session was reset. 1462 New option RequiresDirfsync to turn off the compile time flag 1463 REQUIRES_DIR_FSYNC at runtime. See sendmail/README for 1464 further information. 1465 New command line option -D logfile to send debug output to 1466 the indicated log file instead of stdout. 1467 Add Timeout.queuereturn.dsn and Timeout.queuewarn.dsn to control 1468 queue return and warning times for delivery status 1469 notifications. 1470 New queue sort order option: 'n'one for not sorting the queue entries 1471 at all. 1472 Several more return values for ruleset srv_features have been added 1473 to enable/disable certain features in the server per 1474 connection. See doc/op/op.me for details. 1475 Support for SMTP over SSL (smtps), activated by Modifier=s 1476 for DaemonPortOptions. 1477 Continue with DNS lookups on ECONNREFUSED and TRY_AGAIN when 1478 trying to canonify hostnames. Suggested by Neil Rickert 1479 of Northern Illinois University. 1480 Add support for a fallback smart host (option FallbackSmartHost) to 1481 be tried as a last resort after all other fallbacks. This 1482 is designed for sites with partial DNS (e.g., an accurate 1483 view of inside the company, but an incomplete view of 1484 outside). From John Beck of Sun Microsystems. 1485 Enable timeout for STARTTLS even if client does not start the TLS 1486 handshake. Based on patch by Andrey J. Melnikoff. 1487 Remove deprecated -v option for PH map, use -k instead. Patch from 1488 Mark Roth of the University of Illinois at Urbana-Champaign. 1489 libphclient is version 1.2.x by default, if version 1.1.x is required 1490 then compile with -DNPH_VERSION=10100. Patch from Mark Roth 1491 of the University of Illinois at Urbana-Champaign. 1492 Add Milter.macros.eom, allowing macros to be sent to milter 1493 applications for use in the xxfi_eom() callback. 1494 New macro {time} which contains the output of the time(3) function, 1495 i.e., the number of seconds since 0 hours, 0 minutes, 1496 0 seconds, January 1, 1970, Coordinated Universal Time (UTC). 1497 If check_relay sets the reply code to "421" the SMTP server will 1498 terminate the SMTP session with a 421 error message. 1499 Get rid of dead code that tried to access the environment variable 1500 HOSTALIASES. 1501 Deprecate the use of ErrorMode=write. To enable this in 8.13 1502 compile with -DUSE_TTYPATH=1. 1503 Header check rulesets using $>+ (do not strip comments) will get 1504 the header value passed in without balancing quotes, 1505 parentheses, and angle brackets. Based on patch from 1506 Oleg Bulyzhin. 1507 Do not complain and fix up unbalanced quotes, parentheses, and 1508 angle brackets when reading in rulesets. This allows 1509 rules to be written for header checks to catch strings 1510 that contain quotes, parentheses, and/or angle brackets. 1511 Based on patch from Oleg Bulyzhin. 1512 Do not close socket when accept(2) in the daemon encounters 1513 some temporary errors like ECONNABORTED. 1514 Added list of CA certificates that are used by members of the 1515 sendmail consortium, see CACerts. 1516 Portability: 1517 Two new compile options have been added: 1518 HASCLOSEFROM System has closefrom(3). 1519 HASFDWALK System has fdwalk(3). 1520 Based on patch from John Beck of Sun Microsystems. 1521 The Linux kernel version 2.4 series has a broken flock() so 1522 change to using fcntl() locking until they can fix 1523 it. Be sure to update other sendmail related 1524 programs to match locking techniques. 1525 New compile time option NEEDINTERRNO which should be set 1526 if <errno.h> does not declare errno itself. 1527 Support for UNICOS/mk and UNICOS/mp added, some changes for 1528 UNICOS. Patches contributed by Aaron Davis and 1529 Brian Ginsbach, Cray Inc., and Manu Mahonen of 1530 Center for Scientific Computing. 1531 Add support for Darwin 7.0/Mac OS X 10.3 (a.k.a. Panther). 1532 Extend support to Darwin 7.x/Mac OS X 10.3 (a.k.a. Panther). 1533 Remove path from compiler definition for Interix because 1534 Interix 3.0 and 3.5 put gcc in different locations. 1535 Also use <sys/mkdev.h> to get the correct 1536 major()/minor() definitions. Based on feedback 1537 from Mark Funkenhauser. 1538 CONFIG: Add support for LDAP recursion to the default LDAP searches 1539 for maps via new attributes. See the ``USING LDAP FOR 1540 ALIASES, MAPS, and CLASSES'' section of cf/README and 1541 cf/sendmail.schema for more information. 1542 CONFIG: Make sure confTRUSTED_USER is valid even if confRUN_AS_USER 1543 is of the form "user:group" when used for submit.mc. 1544 Problem noted by Carsten P. Gehrke, patch from Neil Rickert 1545 of Northern Illinois University. 1546 CONFIG: Add a new access DB value of QUARANTINE:reason which 1547 instructs the check_* (except check_compat) to quarantine 1548 the message using the given reason. 1549 CONFIG: Use "dns -R A" as map type for dnsbl (just as for enhdnsbl) 1550 instead of "host" to avoid problem with looking up other 1551 DNS records than just A. 1552 CONFIG: New option confCONNECTION_RATE_WINDOW_SIZE to define the 1553 length of the interval for which the number of incoming 1554 connections is maintained. 1555 CONFIG: New FEATURE(`ratecontrol') to set the limits for connection 1556 rate control for individual hosts or nets. 1557 CONFIG: New FEATURE(`conncontrol') to set the limits for the 1558 number of open SMTP connections for individual hosts or nets. 1559 CONFIG: New FEATURE(`greet_pause') enables open proxy and SMTP 1560 slamming protection described above. The feature can 1561 take an argument specifying the milliseconds to wait and/or 1562 use the access database to look the pause time based on 1563 client hostname, domain, IP address, or subnet. 1564 CONFIG: New FEATURE(`use_client_ptr') to have check_relay use 1565 $&{client_ptr} as its first argument. This is useful for 1566 rejections based on the unverified hostname of client, 1567 which turns on the same behavior as in earlier sendmail 1568 versions when delay_checks was not in use. See also entry 1569 above about check_relay being invoked with ${client_name}. 1570 CONFIG: New option confREJECT_LOG_INTERVAL to specify the log 1571 interval when refusing connections for this long. 1572 CONFIG: Remove quotes around usage of confREJECT_MSG; in some cases 1573 this requires a change in a mc file. Requested by 1574 Ted Roberts of Electronic Data Systems. 1575 CONFIG: New option confAUTH_REALM to set the authentication realm 1576 that is passed to the Cyrus SASL library. Patch from 1577 Gary Mills of the University of Manitoba. 1578 CONFIG: Rename the (internal) classes {tls}/{src} to {Tls}/{Src} 1579 to follow the naming conventions. 1580 CONFIG: Add a third optional argument to local_lmtp to specify 1581 the A= argument. 1582 CONFIG: Remove the f flag from the default mailer flags of 1583 local_lmtp. 1584 CONFIG: New option confREQUIRES_DIR_FSYNC to turn off the compile 1585 time flag REQUIRES_DIR_FSYNC at runtime. 1586 CONFIG: New LOCAL_UUCP macro to insert rules into the generated 1587 cf file at the same place where MAILER(`uucp') inserts 1588 its rules. 1589 CONFIG: New options confTO_QUEUERETURN_DSN and confTO_QUEUEWARN_DSN 1590 to control queue return and warning times for delivery 1591 status notifications. 1592 CONFIG: New option confFALLBACK_SMARTHOST to define FallbackSmartHost. 1593 CONFIG: Add the mc file which has been used to create the cf 1594 file to the end of the cf file when using make in cf/cf/. 1595 Patch from Richard Rognlie. 1596 CONFIG: FEATURE(nodns) has been removed, it was a no-op since 8.9. 1597 Use ServiceSwitchFile to turn off DNS lookups, see 1598 doc/op/op.me. 1599 CONFIG: New option confMILTER_MACROS_EOM (sendmail Milter.macros.eom 1600 option) defines macros to be sent to milter applications for 1601 use in the xxfi_eom() callback. 1602 CONFIG: New option confCRL to specify file which contains 1603 certificate revocations lists. 1604 CONFIG: Add a new value (sendertoo) for the third argument to 1605 FEATURE(`ldap_routing') which will reject the SMTP 1606 MAIL From: command if the sender address doesn't exist 1607 in LDAP. See cf/README for more information. 1608 CONFIG: Add a fifth argument to FEATURE(`ldap_routing') which 1609 instructs the rulesets on whether or not to do a domain 1610 lookup if a full address lookup doesn't match. See cf/README 1611 for more information. 1612 CONFIG: Add a sixth argument to FEATURE(`ldap_routing') which 1613 instructs the rulesets on whether or not to queue the mail 1614 or give an SMTP temporary error if the LDAP server can't be 1615 reached. See cf/README for more information. Based on 1616 patch from Billy Ray Miller of Caterpillar. 1617 CONFIG: Experimental support for MTAMark, see cf/README for details. 1618 CONFIG: New option confMESSAGEID_HEADER to define a different 1619 Message-Id: header format. Patch from Bastiaan Bakker 1620 of LifeLine Networks. 1621 CONTRIB: New version of cidrexpand which uses Net::CIDR. From 1622 Derek J. Balling. 1623 CONTRIB: oldbind.compat.c has been removed due to security problems. 1624 Found by code inspection done by Reasoning, Inc. 1625 DEVTOOLS: Add an example file for devtools/Site/, contributed 1626 by Neil Rickert of Northern Illinois University. 1627 LIBMILTER: Add new function smfi_quarantine() which allows the 1628 filter's EOM routine to quarantine the current message. 1629 Filters which use this function must include the 1630 SMFIF_QUARANTINE flag in the registered smfiDesc structure. 1631 LIBMILTER: If a milter sets the reply code to "421", the SMTP server 1632 will terminate the SMTP session with that error. 1633 LIBMILTER: Upon filter shutdown, libmilter will not remove a 1634 named socket in the file system if it is running as root. 1635 LIBMILTER: Add new function smfi_progress() which allows the filter 1636 to notify the MTA that an EOM operation is still in progress, 1637 resetting the timeout. 1638 LIBMILTER: Add new function smfi_opensocket() which allows the filter 1639 to attempt to establish the interface socket, and detect 1640 failure to do so before calling smfi_main(). 1641 LIBMILTER: Add new function smfi_setmlreply() which allows the 1642 filter to return a multi-line SMTP reply. 1643 LIBMILTER: Deal with more temporary errors in accept() by ignoring 1644 them instead of stopping after too many occurred. 1645 Suggested by James Carlson of Sun Microsystems. 1646 LIBMILTER: Fix a descriptor leak in the sample program found in 1647 docs/sample.html. Reported by Dmitry Adamushko. 1648 LIBMILTER: The sample program also needs to use SMFIF_ADDRCPT. 1649 Reported by Carl Byington of 510 Software Group. 1650 LIBMILTER: Document smfi_stop() and smfi_setdbg(). Patches 1651 from Bryan Costales. 1652 LIBMILTER: New compile time option SM_CONF_POLL; define this if 1653 poll(2) should be used instead of select(2). 1654 LIBMILTER: New function smfi_insheader() and related protocol 1655 amendments to support header insertion operations. 1656 MAIL.LOCAL: Add support for hashed mail directories, see 1657 mail.local/README. Contributed by Chris Adams of HiWAAY 1658 Informations Services. 1659 MAILSTATS: Display quarantine message counts. 1660 MAKEMAP: Add new flag -D to specify the comment character to use 1661 instead of '#'. 1662 VACATION: Add new flag -j to auto-respond to messages regardless of 1663 whether or not the recipient is listed in the To: or Cc: 1664 headers. 1665 VACATION: Add new flag -R to specify the envelope sender address 1666 for the auto-response message. 1667 New Files: 1668 CACerts 1669 cf/feature/conncontrol.m4 1670 cf/feature/greet_pause.m4 1671 cf/feature/mtamark.m4 1672 cf/feature/ratecontrol.m4 1673 cf/feature/use_client_ptr.m4 1674 cf/ostype/unicos.m4 1675 cf/ostype/unicosmk.m4 1676 cf/ostype/unicosmp.m4 1677 contrib/socketmapClient.pl 1678 contrib/socketmapServer.pl 1679 devtools/OS/Darwin.7.0 1680 devtools/OS/UNICOS-mk 1681 devtools/OS/UNICOS-mp 1682 devtools/Site/site.config.m4.sample 1683 include/sm/os/sm_os_unicos.h 1684 include/sm/os/sm_os_unicosmk.h 1685 include/sm/os/sm_os_unicosmp.h 1686 libmilter/docs/smfi_insheader.html 1687 libmilter/docs/smfi_progress.html 1688 libmilter/docs/smfi_quarantine.html 1689 libmilter/docs/smfi_setdbg.html 1690 libmilter/docs/smfi_setmlreply.html 1691 libmilter/docs/smfi_stop.html 1692 sendmail/ratectrl.c 1693 Deleted Files: 1694 cf/feature/nodns.m4 1695 contrib/oldbind.compat.c 1696 devtools/OS/CRAYT3E.2.0.x 1697 devtools/OS/CRAYTS.10.0.x 1698 libsm/vsprintf.c 1699 Renamed Files: 1700 devtools/OS/Darwin.7.0 => devtools/OS/Darwin.7.x 1701 17028.12.11/8.12.11 2004/01/18 1703 Use QueueFileMode when opening qf files. This error was a 1704 regression in 8.12.10. Problem detected and diagnosed 1705 Lech Szychowski of the Polish Power Grid Company. 1706 Properly count the number of queue runners in a work group and 1707 make sure the total limit of MaxQueueChildren is not 1708 exceeded. Based on patch from Takayuki Yoshizawa of 1709 Techfirm, Inc. 1710 Take care of systems that can generate time values where the 1711 seconds can exceed the usual range of 0 to 59. 1712 Problem noted by Randy Diffenderfer of EDS. 1713 Avoid regeneration of identical queue identifiers by processes 1714 whose process id is the same as that of the initial 1715 sendmail process that was used to start the daemon. 1716 Problem noted by Randy Diffenderfer of EDS. 1717 When a milter invokes smfi_delrcpt() compare the supplied 1718 recipient address also against the printable addresses 1719 of the current list to deal with rewritten addresses. 1720 Based on patch from Sean Hanson of The Asylum. 1721 BadRcptThrottle now also works for addresses which return the 1722 error mailer, e.g., virtusertable entries with the 1723 right hand side error:. Patch from Per Hedeland. 1724 Fix printing of 8 bit characters as octals in log messages. 1725 Based on patch by Andrey J. Melnikoff. 1726 Undo change of algorithm for MIME 7-bit base64 encoding to 8-bit 1727 text that has been introduced in 8.12.3. There are some 1728 examples where the new code fails, but the old code works. 1729 To get the 8.12.3-8.12.10 version, compile sendmail with 1730 -DMIME7TO8_OLD=0. If you have an example of improper 1731 7 to 8 bit conversion please send it to us. 1732 Return normal error code for unknown SMTP commands instead of 1733 the one specified by check_relay or a milter for a 1734 connection. Problem noted by Andrzej Filip. 1735 Some ident responses contain data after the terminating CRLF which 1736 causes sendmail to log "POSSIBLE ATTACK...newline in string". 1737 To avoid this everything after LF is ignored. 1738 If the operating system supports O_EXLOCK and HASFLOCK is set 1739 then a possible race condition for creating qf files 1740 can be avoided. Note: the race condition does not 1741 exist within sendmail, but between sendmail and an 1742 external application that accesses qf files. 1743 Log the proper options name for TLS related mising files for 1744 the CACertPath, CACertFile, and DHParameters options. 1745 Do not split an envelope if it will be discarded, otherwise df 1746 files could be left behind. Problem found by Wolfgang 1747 Breyha. 1748 The use of the environment variables HOME and HOSTALIASES has been 1749 deprecated and will be removed in version 8.13. This only 1750 effects configuration which preserve those variable via the 1751 'E' command in the cf file as sendmail clears out its entire 1752 environment. 1753 Portability: 1754 Add support for Darwin 7.0/Mac OS X 10.3 (a.k.a. Panther). 1755 Solaris 10 has unsetenv(), patch from Craig Mohrman of 1756 Sun Microsystems. 1757 LIBMILTER: Add extra checks in case a broken MTA sends bogus data 1758 to libmilter. Based on code review by Rob Grzywinski. 1759 SMRSH: Properly assemble commands that contain '&&' or '||'. 1760 Problem noted by Eric Lee of Talking Heads. 1761 New Files: 1762 devtools/OS/Darwin.7.0 1763 17648.12.10/8.12.10 2003/09/24 (Released: 2003/09/17) 1765 SECURITY: Fix a buffer overflow in address parsing. Problem 1766 detected by Michal Zalewski, patch from Todd C. Miller 1767 of Courtesan Consulting. 1768 Fix a potential buffer overflow in ruleset parsing. This problem 1769 is not exploitable in the default sendmail configuration; 1770 only if non-standard rulesets recipient (2), final (4), or 1771 mailer-specific envelope recipients rulesets are used then 1772 a problem may occur. Problem noted by Timo Sirainen. 1773 Accept 0 (and 0/0) as valid input for set MaxMimeHeaderLength. 1774 Problem noted by Thomas Schulz. 1775 Add several checks to avoid (theoretical) buffer over/underflows. 1776 Properly count message size when performing 7->8 or 8->7 bit MIME 1777 conversions. Problem noted by Werner Wiethege. 1778 Properly compute message priority based on size of entire message, 1779 not just header. Problem noted by Axel Holscher. 1780 Reset SevenBitInput to its configured value between SMTP 1781 transactions for broken clients which do not properly 1782 announce 8 bit data. Problem noted by Stefan Roehrich. 1783 Set {addr_type} during queue runs when processing recipients. 1784 Based on patch from Arne Jansen. 1785 Better error handling in case of (very unlikely) queue-id conflicts. 1786 Perform better error recovery for address parsing, e.g., when 1787 encountering a comment that is too long. Problem noted by 1788 Tanel Kokk, Union Bank of Estonia. 1789 Add ':' to the allowed character list for bogus HELO/EHLO 1790 checking. It is used for IPv6 domain literals. Patch from 1791 Iwaizako Takahiro of FreeBit Co., Ltd. 1792 Reset SASL connection context after a failed authentication attempt. 1793 Based on patch from Rob Siemborski of CMU. 1794 Check Berkeley DB compile time version against run time version 1795 to make sure they match. 1796 Do not attempt AAAA (IPv6) DNS lookups if IPv6 is not enabled 1797 in the kernel. 1798 When a milter adds recipients and one of them causes an error, 1799 do not ignore the other recipients. Problem noted by 1800 Bart Duchesne. 1801 CONFIG: Use specified SMTP error code in mailertable entries which 1802 lack a DSN, i.e., "error:### Text". Problem noted by 1803 Craig Hunt. 1804 CONFIG: Call Local_trust_auth with the correct argument. Patch 1805 from Jerome Borsboom. 1806 CONTRIB: Better handling of temporary filenames for doublebounce.pl 1807 and expn.pl to avoid file overwrites, etc. Patches from 1808 Richard A. Nelson of Debian and Paul Szabo. 1809 MAIL.LOCAL: Fix obscure race condition that could lead to an 1810 improper mailbox truncation if close() fails after the 1811 mailbox is fsync()'ed and a new message is delivered 1812 after the close() and before the truncate(). 1813 MAIL.LOCAL: If mail delivery fails, do not leave behind a 1814 stale lockfile (which is ignored after the lock timeout). 1815 Patch from Oleg Bulyzhin of Cronyx Plus LLC. 1816 Portability: 1817 Port for AIX 5.2. Thanks to Steve Hubert of University 1818 of Washington for providing access to a computer 1819 with AIX 5.2. 1820 setreuid(2) works on OpenBSD 3.3. Patch from 1821 Todd C. Miller of Courtesan Consulting. 1822 Allow for custom definition of SMRSH_CMDDIR and SMRSH_PATH 1823 on all operating systems. Patch from Robert Harker 1824 of Harker Systems. 1825 Use strerror(3) on Linux. If this causes a problem on 1826 your Linux distribution, compile with 1827 -DHASSTRERROR=0 and tell sendmail.org about it. 1828 Added Files: 1829 devtools/OS/AIX.5.2 1830 18318.12.9/8.12.9 2003/03/29 1832 SECURITY: Fix a buffer overflow in address parsing due to 1833 a char to int conversion problem which is potentially 1834 remotely exploitable. Problem found by Michal Zalewski. 1835 Note: an MTA that is not patched might be vulnerable to 1836 data that it receives from untrusted sources, which 1837 includes DNS. 1838 To provide partial protection to internal, unpatched sendmail MTAs, 1839 8.12.9 changes by default (char)0xff to (char)0x7f in 1840 headers etc. To turn off this conversion compile with 1841 -DALLOW_255 or use the command line option -d82.101. 1842 To provide partial protection for internal, unpatched MTAs that may be 1843 performing 7->8 or 8->7 bit MIME conversions, the default 1844 for MaxMimeHeaderLength has been changed to 2048/1024. 1845 Note: this does have a performance impact, and it only 1846 protects against frontal attacks from the outside. 1847 To disable the checks and return to pre-8.12.9 defaults, 1848 set MaxMimeHeaderLength to 0/0. 1849 Do not complain about -ba when submitting mail. Problem noted 1850 by Derek Wueppelmann. 1851 Fix compilation with Berkeley DB 1.85 on systems that do not 1852 have flock(2). Problem noted by Andy Harper of Kings 1853 College London. 1854 Properly initialize data structure for dns maps to avoid various 1855 errors, e.g., looping processes. Problem noted by 1856 Maurice Makaay of InterNLnet B.V. 1857 CONFIG: Prevent multiple application of rule to add smart host. 1858 Patch from Andrzej Filip. 1859 CONFIG: Fix queue group declaration in MAILER(`usenet'). 1860 CONTRIB: buildvirtuser: New option -t builds the virtusertable 1861 text file instead of the database map. 1862 Portability: 1863 Revert wrong change made in 8.12.7 and actually use the 1864 builtin getopt() version in sendmail on Linux. 1865 This can be overridden by using -DSM_CONF_GETOPT=0 1866 in which case the OS supplied version will be used. 1867 18688.12.8/8.12.8 2003/02/11 1869 SECURITY: Fix a remote buffer overflow in header parsing by 1870 dropping sender and recipient header comments if the 1871 comments are too long. Problem noted by Mark Dowd 1872 of ISS X-Force. 1873 Fix a potential non-exploitable buffer overflow in parsing the 1874 .cf queue settings and potential buffer underflow in 1875 parsing ident responses. Problem noted by Yichen Xie of 1876 Stanford University Compilation Group. 1877 Fix ETRN #queuegroup command: actually start a queue run for 1878 the selected queue group. Problem noted by Jos Vos. 1879 If MaxMimeHeaderLength is set and a malformed MIME header is fixed, 1880 log the fixup as "Fixed MIME header" instead of "Truncated 1881 MIME header". Problem noted by Ian J Hart. 1882 CONFIG: Fix regression bug in proto.m4 that caused a bogus 1883 error message: "FEATURE() should be before MAILER()". 1884 MAIL.LOCAL: Be more explicit in some error cases, i.e., whether 1885 a mailbox has more than one link or whether it is not 1886 a regular file. Patch from John Beck of Sun Microsystems. 1887 18888.12.7/8.12.7 2002/12/29 1889 Properly clean up macros to avoid persistence of session data 1890 across various connections. This could cause session 1891 oriented restrictions, e.g., STARTTLS requirements, 1892 to erroneously allow a connection. Problem noted 1893 by Tim Maletic of Priority Health. 1894 Do not lookup MX records when sorting the MSP queue. The MSP 1895 only needs to relay all mail to the MTA. Problem found 1896 by Gary Mills of the University of Manitoba. 1897 Do not restrict the length of connection information to 100 1898 characters in some logging statements. Problem noted by 1899 Erik Parker. 1900 When converting an enhanced status code to an exit status, use 1901 EX_CONFIG if the first digit is not 2, 4, or 5 or if *.1.5 1902 is used. 1903 Reset macro $x when receiving another MAIL command. Problem 1904 noted by Vlado Potisk of Wigro s.r.o. 1905 Don't bother setting the permissions on the build area statistics 1906 file, the proper permissions will be put on the file at 1907 install time. This fixes installation over NFS for some 1908 users. Problem noted by Martin J. Dellwo of 3-Dimensional 1909 Pharmaceuticals, Inc. 1910 Fix problem of decoding SASLv2 encrypted data. Problem noted by 1911 Alex Deiter of Mobile TeleSystems, Komi Republic. 1912 Log milter socket open errors at MilterLogLevel 1 or higher instead 1913 of 11 or higher. 1914 Print early system errors to the console instead of silently 1915 exiting. Problem noted by James Jong of IBM. 1916 Do not process a queue group if Runners is set to 0, regardless 1917 of whether F=f or sendmail is run in verbose mode (-v). 1918 The use of -qGname will still force queue group "name" 1919 to be run even if Runners=0. 1920 Change the level for logging the fact that a daemon is refusing 1921 connections due to high load from LOG_INFO to LOG_NOTICE. 1922 Patch from John Beck of Sun Microsystems. 1923 Use location information for submit.cf from NetInfo 1924 (/locations/sendmail/submit.cf) if available. 1925 Re-enable ForkEachJob which was lost in 8.12.0. Problem noted by 1926 Neil Rickert of Northern Illinois University. 1927 Make behavior of /canon in debug mode consistent with usage in 1928 rulesets. Patch from Shigeno Kazutaka of IIJ. 1929 Fix a potential memory leak in envelope splitting. Problem noted 1930 by John Majikes of IBM. 1931 Do not try to share an mailbox database LDAP connection across 1932 different processes. Problem noted by Randy Kunkee. 1933 Fix logging for undelivered recipients when the SMTP connection 1934 times out during message collection. Problem noted by Neil 1935 Rickert of Northern Illinois University. 1936 Avoid problems with QueueSortOrder=random due to problems with 1937 qsort() on Solaris (and maybe some other operating systems). 1938 Problem noted by Stephan Schulz of Gruner+Jahr.. 1939 If -f "" is specified, set the sender address to "<>". Problem 1940 noted by Matthias Andree. 1941 Fix formatting problem of footnotes for plain text output on some 1942 versions of tmac. Patch from Per Hedeland. 1943 Portability: 1944 Berkeley DB 4.1 support (requires at least 4.1.25). 1945 Some getopt(3) implementations in GNU/Linux are broken 1946 and pass a NULL pointer to an option which requires 1947 an argument, hence the builtin version of 1948 sendmail is used instead. This can be overridden 1949 by using -DSM_CONF_GETOPT=0. Problem noted by 1950 Vlado Potisk of Wigro s.r.o. 1951 Support for nph-1.2.0 from Mark D. Roth of the University 1952 of Illinois at Urbana-Champaign. 1953 Support for FreeBSD 5.0's MAC labeling from Robert Watson 1954 of the TrustedBSD Project. 1955 Support for reading the number of processors on an IRIX 1956 system from Michel Bourget of SGI. 1957 Support for UnixWare 7.1 based on input from Larry Rosenman. 1958 Interix support from Nedelcho Stanev of Atlantic Sky 1959 Corporation. 1960 Update Mac OS X/Darwin portability from Wilfredo Sanchez. 1961 CONFIG: Enforce tls_client restrictions even if delay_checks 1962 is used. Problem noted by Malte Starostik. 1963 CONFIG: Deal with an empty hostname created via bogus 1964 DNS entries to get around access restrictions. 1965 Problem noted by Kai Schlichting. 1966 CONFIG: Use FEATURE(`msp', `[127.0.0.1]') in submit.mc by default 1967 to avoid problems with hostname resolution for localhost 1968 which on many systems does not resolve to 127.0.0.1 (or 1969 ::1 for IPv6). If you do not use IPv4 but only IPv6 then 1970 you need to change submit.mc accordingly, see the comment 1971 in the file itself. 1972 CONFIG: Set confDONT_INIT_GROUPS to True in submit.mc to avoid 1973 error messages from initgroups(3) on AIX 4.3 when sending 1974 mail to non-existing users. Problem noted by Mark Roth of 1975 the University of Illinois at Urbana-Champaign. 1976 CONFIG: Allow local_procmail to override local_lmtp settings. 1977 CONFIG: Always allow connections from 127.0.0.1 or IPv6:::1 to 1978 relay. 1979 CONTRIB: cidrexpand: Deal with the prefix tags that may be included 1980 in access_db. 1981 CONTRIB: New version of doublebounce.pl contributed by Leo Bicknell. 1982 LIBMILTER: On Solaris libmilter may get into an endless loop if 1983 an error in the communication from/to the MTA occurs. 1984 Patch from Gurusamy Sarathy of Active State. 1985 LIBMILTER: Ignore EINTR from sigwait(3) which may happen on Tru64. 1986 Patch from from Jose Marcio Martins da Cruz of Ecole 1987 Nationale Superieure des Mines de Paris. 1988 MAIL.LOCAL: Fix a truncation race condition if the close() on 1989 the mailbox fails. Problem noted by Tomoko Fukuzawa of 1990 Sun Microsystems. 1991 MAIL.LOCAL: Fix a potential file descriptor leak if mkstemp(3) 1992 fails. Patch from John Beck of Sun Microsystems. 1993 SMRSH: SECURITY: Only allow regular files or symbolic links to be 1994 used for a command. Problem noted by David Endler of 1995 iDEFENSE, Inc. 1996 New Files: 1997 devtools/OS/Interix 1998 include/sm/bdb.h 1999 20008.12.6/8.12.6 2002/08/26 2001 Do not add the FallbackMXhost (or its MX records) to the list 2002 returned by the bestmx map when -z is used as option. 2003 Otherwise sendmail may act as an open relay if FallbackMXhost 2004 and FEATURE(`relay_based_on_MX') are used together. 2005 Problem noted by Alexander Ignatyev. 2006 Properly split owner- mailing list messages when SuperSafe is set 2007 to interactive. Problem noted by Todd C. Miller of 2008 Courtesan Consulting. 2009 Make sure that an envelope is queued in the selected queue group 2010 even if some recipients are deleted or invalid. Problem 2011 found by Chris Adams of HiWAAY Informations Services. 2012 Do not send a bounce message if a message is completely collected 2013 from the SMTP client. Problem noted by Kari Hurtta of the 2014 Finnish Meteorological Institute. 2015 Provide an 'install-submit-st' target for sendmail/Makefile to 2016 install the MSP statistics file using the file named in the 2017 confMSP_STFILE devtools variable. Requested by Jeff 2018 Earickson of Colby College. 2019 Queue up mail with a temporary error if setusercontext() fails 2020 during a delivery attempt. Patch from Todd C. Miller of 2021 Courtesan Consulting. 2022 Fix handling of base64 encoded client authentication data for 2023 SMTP AUTH. Patch from Elena Slobodnik of life medien GmbH. 2024 Set the OpenLDAP option LDAP_OPT_RESTART so the client libraries 2025 restart interrupted system calls. Problem noted by Luiz 2026 Henrique Duma of BSIOne. 2027 Prevent a segmentation fault if a program passed a NULL envp using 2028 execve(). 2029 Document a problem with the counting of queue runners that may 2030 cause delays if MaxQueueChildren is set too low. Problem 2031 noted by Ian Duplisse of Cable Television Laboratories, Inc. 2032 If discarding a message based on a recipient, don't try to look up 2033 the recipient in the mailbox database if F=w is set. This 2034 allows users to discard bogus recipients when dealing with 2035 spammers without tipping them off. Problem noted by Neil 2036 Rickert of Northern Illinois University. 2037 If applying a header check to a header with unstructured data, 2038 e.g., Subject:, then do not run syntax checks that are 2039 supposed for addresses on the header content. 2040 Count messages rejected/discarded via the check_data ruleset. 2041 Portability: 2042 Fix compilation on systems which do not allow simple 2043 copying of the variable argument va_list. Based on 2044 fix from Scott Walters. 2045 Fix NSD map open bug. From Michel Bourget of SGI. 2046 Add some additional IRIX shells to the default shell 2047 list. From Michel Bourget of SGI. 2048 Fix compilation issues on Mac OS X 10.2 (Darwin 6.0). 2049 NETISO support has been dropped. 2050 CONFIG: There was a seemingly minor change in 8.12.4 with respect 2051 to handling entries of IP nets/addresses with RHS REJECT. 2052 These would be rejected in check_rcpt instead of only 2053 being activated in check_relay. This change has been made to 2054 avoid potential bogus temporary rejection of relay attempts 2055 "450 4.7.1 Relaying temporarily denied. Cannot resolve PTR 2056 record for ..." if delay_checks is enabled. However, this 2057 modification causes a change of behavior if an IP net/address 2058 is listed in the access map with REJECT and a host/domain 2059 name is listed with OK or RELAY, hence it has been reversed 2060 such that the behavior of 8.12.3 is restored. The original 2061 change was made on request of Neil Rickert of Northern 2062 Illinois University, the side effect has been found by 2063 Stefaan Van Hoornick. 2064 CONFIG: Make sure delay_checks works even for sender addresses 2065 using the local hostname ($j) or domains in class {P}. 2066 Based on patch from Neil Rickert of Northern Illinois 2067 University. 2068 CONFIG: Fix temporary error handling for LDAP Routing lookups. 2069 Fix from Andrzej Filip. 2070 CONTRIB: New version of etrn.pl script and external man page 2071 (etrn.0) from John Beck of Sun Microsystems. 2072 LIBMILTER: Protect a free(3) operation from being called with a 2073 NULL pointer. Problem noted by Andrey J. Melnikoff. 2074 LIBMILTER: Protect against more interrupted select() calls. Based 2075 on patch from Jose Marcio Martins da Cruz of Ecole Nationale 2076 Superieure des Mines de Paris. 2077 New Files: 2078 contrib/etrn.0 2079 20808.12.5/8.12.5 2002/06/25 2081 SECURITY: The DNS map can cause a buffer overflow if the user 2082 specifies a dns map using TXT records in the configuration 2083 file and a rogue DNS server is queried. None of the 2084 sendmail supplied configuration files use this option hence 2085 they are not vulnerable. Problem noted independently by 2086 Joost Pol of PINE Internet and Anton Rang of Sun Microsystems. 2087 Unprintable characters in responses from DNS servers for the DNS 2088 map type are changed to 'X' to avoid potential problems 2089 with rogue DNS servers. 2090 Require a suboption when setting the Milter option. Problem noted 2091 by Bryan Costales. 2092 Do not silently overwrite command line settings for 2093 DirectSubmissionModifiers. Problem noted by Bryan 2094 Costales. 2095 Prevent a segmentation fault when clearing the event list by 2096 turning off alarms before checking if event list is 2097 empty. Problem noted by Allan E Johannesen of Worcester 2098 Polytechnic Institute. 2099 Close a potential race condition in transitioning a memory buffered 2100 file onto disk. From Janani Devarajan of Sun Microsystems. 2101 Portability: 2102 Include paths.h on Linux systems running glibc 2.0 or later 2103 to get the definition for _PATH_SENDMAIL, used by 2104 rmail and vacation. Problem noted by Kevin 2105 A. McGrail of Peregrine Hardware. 2106 NOTE: Linux appears to have broken flock() again. Unless 2107 the bug is fixed before sendmail 8.13 is shipped, 2108 8.13 will change the default locking method to 2109 fcntl() for Linux kernel 2.4 and later. You may 2110 want to do this in 8.12 by compiling with 2111 -DHASFLOCK=0. Be sure to update other sendmail 2112 related programs to match locking techniques. 2113 21148.12.4/8.12.4 2002/06/03 2115 SECURITY: Inherent limitations in the UNIX file locking model 2116 can leave systems open to a local denial of service 2117 attack. Be sure to read the "FILE AND MAP PERMISSIONS" 2118 section of the top level README for more information. 2119 Problem noted by lumpy. 2120 Use TempFileMode (defaults to 0600) for the permissions of PidFile 2121 instead of 0644. 2122 Change the default file permissions for new alias database files 2123 from 0644 to 0640. This can be overridden at compile time 2124 by setting the DBMMODE macro. 2125 Fix a potential core dump problem if the environment variable 2126 NAME is set. Problem noted by Beth A. Chaney of 2127 Purdue University. 2128 Expand macros before passing them to libmilter. Problem noted 2129 by Jose Marcio Martins da Cruz of Ecole Nationale 2130 Superieure des Mines de Paris. 2131 Rewind the df (message body) before truncating it when libmilter 2132 replaces the body of a message. Problem noted by Gisle Aas 2133 of Active State. 2134 Change SMTP reply code for AUTH failure from 500 to 535 and the 2135 initial zero-length response to "=" per RFC 2554. Patches 2136 from Kenneth Murchison of Oceana Matrix Ltd. 2137 Do not try to fix broken message/rfc822 MIME attachments by 2138 inserting a MIME-Version: header when MaxMimeHeaderLength 2139 is set and no 8 to 7 bit conversion is needed. Based on 2140 patch from Rehor Petr of ICZ (Czech Republic). 2141 Do not log "did not issue MAIL/EXPN/VRFY/ETRN" if the connection 2142 is rejected anyway. Noted by Chris Loelke. 2143 Mention the submission mail queue in the mailq man page. Requested 2144 by Bill Fenner of AT&T. 2145 Set ${msg_size} macro when reading a message from the command line 2146 or the queue. 2147 Detach from shared memory before dropping privileges back to 2148 user who started sendmail. 2149 If AllowBogusHELO is set to false (default) then also complain if 2150 the argument to HELO/EHLO contains white space. Suggested 2151 by Seva Gluschenko of Cronyx Plus. 2152 Allow symbolicly linked forward files in writable directory paths 2153 if both ForwardFileInUnsafeDirPath and 2154 LinkedForwardFileInWritableDir DontBlameSendmail options 2155 are set. Problem noted by Werner Spirk of 2156 Leibniz-Rechenzentrum Munich. 2157 Portability: 2158 Operating systems that lack the ftruncate() call will not 2159 be able to use Milter's body replacement feature. 2160 This only affects Altos, Maxion, and MPE/iX. 2161 Digital UNIX 5.0 has changed flock() semantics to be 2162 non-compliant. Problem noted by Martin Mokrejs of 2163 Charles University in Prague. 2164 The sparc64 port of FreeBSD 5.0 now supports shared 2165 memory. 2166 CONFIG: FEATURE(`preserve_luser_host') needs the macro map. 2167 Problem noted by Andrzej Filip. 2168 CONFIG: Using 'local:' as a mailertable value with 2169 FEATURE(`preserve_luser_host') and LUSER_RELAY caused mail 2170 to be misaddressed. Problem noted by Andrzej Filip. 2171 CONFIG: Provide a workaround for DNS based rejection lists that 2172 fail for AAAA queries. Problem noted by Chris Boyd. 2173 CONFIG: Accept the machine's hostname as resolvable when checking 2174 the sender address. This allows locally submitted mail to 2175 be accepted if the machine isn't connected to a nameserver 2176 and doesn't have an /etc/hosts entry for itself. Problem 2177 noted by Robert Watson of the TrustedBSD Project. 2178 CONFIG: Use deferred expansion for checking the ${deliveryMode} 2179 macro in case the SMTP VERB command is used. Problem 2180 noted by Bryan Costales. 2181 CONFIG: Avoid a duplicate '@domain' virtusertable lookup if no 2182 matches are found. Fix from Andrzej Filip. 2183 CONFIG: Fix wording in default dnsbl rejection message. Suggested 2184 by Lou Katz of Metron Computerware, Ltd. 2185 CONFIG: Add mailer cyrusv2 for Cyrus V2. Contributed by 2186 Kenneth Murchison of Oceana Matrix Ltd. 2187 CONTRIB: Fix wording in default dnsblaccess rejection message to 2188 match dnsbl change. 2189 DEVTOOLS: Add new option for access mode of statistics file, 2190 confSTMODE, which specifies the permissions when initially 2191 installing the sendmail statistics file. 2192 LIBMILTER: Mark the listening socket as close-on-exec in case 2193 a user's filter starts other applications. 2194 LIBSM: Allow the MBDB initialize, lookup, and/or terminate 2195 functions in SmMbdbTypes to be set to NULL. 2196 MAKEMAP: Change the default file permissions for new databases from 2197 0644 to 0640. This can be overridden at compile time 2198 by setting the DBMMODE macro. 2199 SMRSH: Fix man page bug: replace SMRSH_CMDBIN with SMRSH_CMDDIR. 2200 Problem noted by Dave Alden of Ohio State University. 2201 VACATION: When listing the vacation database (-l), don't show 2202 bogus timestamps for excluded (-x) addresses. Problem 2203 noted by Bryan Costales. 2204 New Files: 2205 cf/mailer/cyrusv2.m4 2206 22078.12.3/8.12.3 2002/04/05 2208 NOTICE: In general queue files should not be moved if queue groups 2209 are used. In previous versions this could cause mail 2210 not to be delivered if a queue file is repeatedly moved 2211 by an external process whenever sendmail moved it back 2212 into the right place. Some precautions have been taken 2213 to avoid moving queue files if not really necessary. 2214 sendmail may use links to refer to queue files and it 2215 may store the path of data files in queue files. Hence 2216 queue files should not be moved unless those internals 2217 are understood and the integrity of the files is not 2218 compromised. Problem noted by Anne Bennett of Concordia 2219 University. 2220 If an error mail is created, and the mail is split across different 2221 queue directories, and SuperSafe is off, then write the mail 2222 to disk before splitting it, otherwise an assertion is 2223 triggered. Problem tracked down by Henning Schmiedehausen 2224 of INTERMETA. 2225 Fix possible race condition that could cause sendmail to forget 2226 running queues. Problem noted by Jeff Wasilko of smoe.org. 2227 Handle bogus qf files better without triggering assertions. 2228 Problem noted by Guy Feltin. 2229 Protect against interrupted select() call when enforcing Milter 2230 read and write timeouts. Patch from Gurusamy Sarathy of 2231 ActiveState. 2232 Matching queue IDs with -qI should be case sensitive. Problem 2233 noted by Anne Bennett of Concordia University. 2234 If privileges have been dropped, don't try to change group ID to 2235 the RunAsUser group. Problem noted by Neil Rickert of 2236 Northern Illinois University. 2237 Fix SafeFileEnvironment path munging when the specified path 2238 contains a trailing slash. Based on patch from Dirk Meyer 2239 of Dinoex. 2240 Do not limit sendmail command line length to SM_ARG_MAX (usually 2241 4096). Problem noted by Allan E Johannesen of Worcester 2242 Polytechnic Institute. 2243 Clear full name of sender for each new envelope to avoid bogus data 2244 if several mails are sent in one session and some of them 2245 do not have a From: header. Problem noted by Bas Haakman. 2246 Change timeout check such that cached information about a connection 2247 will be immediately invalid if ConnectionCacheTimeout is zero. 2248 Based on patch from David Burns of Portland State University. 2249 Properly count message size for mailstats during mail collection. 2250 Problem noted by Werner Wiethege. 2251 Log complete response from LMTP delivery agent on failure. Based on 2252 patch from Motonori Nakamura of Kyoto University. 2253 Provide workaround for getopt() implementations that do not catch 2254 missing arguments. 2255 Fix the message size calculation if the message body is replaced by 2256 a milter filter and buffered file I/O is being used. 2257 Problem noted by Sergey Akhapkin of Dr.Web. 2258 Do not honor SIGUSR1 requests if running with extra privileges. 2259 Problem noted by Werner Wiethege. 2260 Prevent a file descriptor leak on mail delivery if the initial 2261 connect fails and DialDelay is set. Patch from Servaas 2262 Vandenberghe of Katholieke Universiteit Leuven. 2263 Properly deal with a case where sendmail is called by root running 2264 a set-user-ID (non-root) program. Problem noted by Jon 2265 Lusky of ISS Atlanta. 2266 Avoid leaving behind stray transcript (xf) files if multiple queue 2267 directories are used and mail is sent to a mailing list 2268 which has an owner- alias. Problem noted by Anne Bennett 2269 of Concordia University. 2270 Fix class map parsing code if optional key is specified. Problem 2271 found by Mario Nigrovic. 2272 The SMTP daemon no longer tries to fix up improperly dot-stuffed 2273 incoming messages. A leading dot is always stripped by the 2274 SMTP receiver regardless of whether or not it is followed by 2275 another dot. Problem noted by Jordan Ritter of darkridge.com. 2276 Fix corruption when doing automatic MIME 7-bit quoted-printable or 2277 base64 encoding to 8-bit text. Problem noted by Mark 2278 Elvers. 2279 Correct the statistics gathered for total number of connections. 2280 Instead of being the exact same number as the total number 2281 of messages (T line in mailstats) it now represents the 2282 total number of TCP connections. 2283 Be more explicit about syntax errors in addresses, especially 2284 non-ASCII characters, and properly create DSNs if necessary. 2285 Problem noted by Leena Heino of the University of Tampere. 2286 Prevent small timeouts from being lost on slow machines if itimers 2287 are used. Problem noted by Suresh Ramasubramanian. 2288 Prevent a race condition on child cleanup for delivery to files. 2289 Problem noted by Fletcher Mattox of the University of 2290 Texas. 2291 Change the SMTP error code for temporary map failures from 421 2292 to 451. 2293 Do not assume that realloc(NULL, size) works on all OS (this was 2294 only done in one place: queue group creation). Based on 2295 patch by Bryan Costales. 2296 Initialize Timeout.iconnect in the code to prevent randomly short 2297 timeouts. Problem noted by Bradley Watts of AT&T Canada. 2298 Do not try to send a second SMTP QUIT command if the remote 2299 responds to a MAIL command with a 421 reply or on I/O 2300 errors. By doing so, the host was marked as having a 2301 temporary problem and other mail destined for that host was 2302 queued for the next queue run. Problem noted by Fletcher 2303 Mattox of the University of Texas, Allan E Johannesen of 2304 Worcester Polytechnic Institute, Larry Greenfield of CMU, 2305 and Neil Rickert of Northern Illinois University. 2306 Ignore error replies from the SMTP QUIT command (including servers 2307 which drop the connection instead of responding to the 2308 command). 2309 Portability: 2310 Check LDAP_API_VERSION to determine if ldap_memfree() is 2311 available. 2312 Define HPUX10 when building on HP-UX 10.X. That platform 2313 now gets the proper _PATH_SENDMAIL and SMRSH_CMDDIR 2314 settings. Patch from Elias Halldor Agustsson of 2315 Skyrr. 2316 Fix dependency building on Mac OS X and Darwin. Problem 2317 noted by John Beck. 2318 Preliminary support for the sparc64 port of FreeBSD 5.0. 2319 Add /sbin/sh as an acceptable user shell on HP-UX. From 2320 Rajesh Somasund of Hewlett-Packard. 2321 CONFIG: Add FEATURE(`authinfo') to allow a separate database for 2322 SMTP AUTH information. This feature was actually added in 2323 8.12.0 but a release note was not included. 2324 CONFIG: Do not bounce mail if FEATURE(`ldap_routing')'s bounce 2325 parameter is set and the LDAP lookup returns a temporary 2326 error. 2327 CONFIG: Honor FEATURE(`relay_hosts_only') when using 2328 FEATURE(`relay_mail_from', `domain'). Problem noted by 2329 Krzysztof Oledzki. 2330 CONFIG: FEATURE(`msp') now disables any type of alias 2331 initialization as aliases are not needed for the MSP. 2332 CONFIG: Allow users to override RELAY_MAILER_ARGS when FEATURE(`msp') 2333 is in use. Patch from Andrzej Filip. 2334 CONFIG: FEATURE(`msp') uses `[localhost]' as default instead of 2335 `localhost' and turns on MX lookups for the SMTP mailers. 2336 This will only have an effect if a parameter is specified, 2337 i.e., an MX lookup will be performed on the hostname unless 2338 it is embedded in square brackets. Problem noted by 2339 Theo Van Dinter of Collective Technologies. 2340 CONFIG: Set confTIME_ZONE to USE_TZ in submit.mc (TimeZoneSpec= in 2341 submit.cf) to use $TZ for time stamps. This is a compromise 2342 to allow for the proper time zone on systems where the 2343 default results in misleading time stamps. That is, syslog 2344 time stamps and Date headers on submitted mail will use the 2345 user's $TZ setting. Problem noted by Mark Roth of the 2346 University of Illinois at Urbana-Champaign, solution proposed 2347 by Neil Rickert of Northern Illinois University. 2348 CONFIG: Mac OS X (Darwin) ships with mail.local as non-set-user-ID 2349 binary. Adjust local mailer flags accordingly. Problem 2350 noted by John Beck. 2351 CONTRIB: Add a warning to qtool.pl to not move queue files around 2352 if queue groups are used. 2353 CONTRIB: buildvirtuser: Add -f option to force rebuild. 2354 CONTRIB: smcontrol.pl: Add -f option to specify control socket. 2355 CONTRIB: smcontrol.pl: Add support for 'memdump' command. 2356 Suggested by Bryan Costales. 2357 DEVTOOLS: Add dependency generation for test programs. 2358 LIBMILTER: Remove conversion of port number for the socket 2359 structure that is passed to xxfi_connect(). Notice: 2360 this fix requires that sendmail and libmilter both have 2361 this change; mixing versions may lead to wrong port 2362 values depending on the endianness of the involved systems. 2363 Problem noted by Gisle Aas of ActiveState. 2364 LIBMILTER: If smfi_setreply() sets a custom reply code of '4XX' but 2365 SMFI_REJECT is returned, ignore the custom reply. Do the 2366 same if '5XX' is used and SMFI_TEMPFAIL is returned. 2367 LIBMILTER: Install include files in ${INCLUDEDIR}/libmilter/ as 2368 required by mfapi.h. Problem noted by Jose Marcio Martins 2369 da Cruz of Ecole Nationale Superieure des Mines de Paris. 2370 LIBSM: Add SM_CONF_LDAP_MEMFREE as a configuration define. Set 2371 this to 1 if your LDAP client libraries include 2372 ldap_memfree(). 2373 LIBSMDB: Avoid a file creation race condition for Berkeley DB 1.X 2374 and NDBM on systems with the O_EXLOCK open(2) flag. 2375 SMRSH: Fix compilation problem on some operating systems. Problem 2376 noted by Christian Krackowizer of schuler technodat GmbH. 2377 VACATION: Allow root to operate on user vacation databases. Based 2378 on patch from Greg Couch of the University of California, 2379 San Francisco. 2380 VACATION: Don't ignore -C option. Based on patch by Bryan Costales. 2381 VACATION: Clarify option usage in the man page. Problem noted by 2382 Joe Barbish. 2383 New Files: 2384 libmilter/docs/smfi_setbacklog.html 2385 23868.12.2/8.12.2 2002/01/13 2387 Don't complain too much if stdin, stdout, or stderr are missing 2388 at startup, only log an error message. 2389 Fix potential problem if an unknown operation mode (character 2390 following -b) has been specified. 2391 Prevent purgestat from looping even if someone changes the 2392 permissions or owner of hoststatus files. Problem noted 2393 by Kari Hurtta of the Finnish Meteorological Institute. 2394 Properly record dropped connections in persistent host status. 2395 Problem noted by Ulrich Windl of the Universitat 2396 Regensburg. 2397 Remove newlines from recipients read via sendmail -t to prevent 2398 SMTP protocol errors when sending the RCPT command. 2399 Problem noted by William D. Colburn of the New Mexico 2400 Institute of Mining and Technology. 2401 Only log milter body replacements once instead of for each body 2402 chunk sent by a filter. Problem noted by Kari Hurtta of 2403 the Finnish Meteorological Institute. 2404 In 8.12.0 and 8.12.1, the headers were mistakenly not included in 2405 the message size calculation. Problem noted by Kari Hurtta 2406 of the Finnish Meteorological Institute. 2407 Since 8.12 no longer forks at the SMTP MAIL command, the daemon 2408 needs to collect children status to avoid zombie processes. 2409 Problem noted by Chris Adams of HiWAAY Informations Services. 2410 Shut down "nullserver" and ETRN-only connections after 25 bad 2411 commands are issued. This makes it consistent with normal 2412 SMTP connections. 2413 Avoid duplicate logging of milter rejections. Problem noted by 2414 William D. Colburn of the New Mexico Institute of Mining 2415 and Technology. 2416 Error and delay DSNs were being sent to postmaster instead of the 2417 message sender if the sender had used a deprecated RFC822 2418 source route. Problem noted by Kari Hurtta of the Finnish 2419 Meteorological Institute. 2420 Fix FallbackMXhost behavior for temporary errors during address 2421 parsing. Problem noted by Jorg Bielak from Coastal Web 2422 Online. 2423 For systems on which stat(2) does not return a value for st_blksize 2424 that is the "optimal blocksize for I/O" three new compile 2425 time flags are available: SM_IO_MAX_BUF_FILE, SM_IO_MIN_BUF, 2426 and SM_IO_MAX_BUF, which define an upper limit for 2427 regular files, and a lower and upper limit for other file 2428 types, respectively. 2429 Fix a potential deadlock if two events are supposed to occur at 2430 exactly the same time. Problem noted by Valdis Kletnieks 2431 of Virginia Tech. 2432 Perform envelope splitting for aliases listed directly in the 2433 alias file, not just for include/.forward files. 2434 Problem noted by John Beck of Sun Microsystems. 2435 Allow selection of queue group for mailq using -qGgroup. 2436 Based on patch by John Beck of Sun Microsystems. 2437 Make sure cached LDAP connections used my multiple maps in the same 2438 process are closed. Patch from Taso N. Devetzis. 2439 If running as root, allow reading of class files in protected 2440 directories. Patch from Alexander Talos of the University 2441 of Vienna. 2442 Correct a few LDAP related memory leaks. Patch from David Powell 2443 of Sun Microsystems. 2444 Allow specification of an empty realm via the authinfo ruleset. 2445 This is necessary to interoperate as an SMTP AUTH client 2446 with servers that do not support realms when using 2447 CRAM-MD5. Problem noted by Bjoern Voigt of TU Berlin. 2448 Avoid a potential information leak if AUTH PLAIN is used and the 2449 server gets stuck while processing that command. Problem 2450 noted by Chris Adams from HiWAAY Informations Services. 2451 In addition to printing errors when parsing recipients during 2452 command line invocations log them to make it simpler 2453 to understand possible DSNs to postmaster. 2454 Do not use FallbackMXhost on mailers which have the F=0 flag set. 2455 Allow local mailers (F=l) to specify a host for TCP connections 2456 instead of forcing localhost. 2457 Obey ${DESTDIR} for installation of the client mail queue and 2458 submit.cf. Patch from Peter 'Luna' Runestig. 2459 Re-enable support for -M option which was broken in 8.12.1. Problem 2460 noted by Neil Rickert of Northern Illinois University. 2461 If a remote server violates the SMTP standard by unexpectedly 2462 dropping the connection during an SMTP transaction, stop 2463 sending commands. This prevents bogus "Bad file number" 2464 recipient status. Problem noted by Allan E Johannesen of 2465 Worcester Polytechnic Institute. 2466 Do not use a size estimate of 100 for postmaster bounces, it's 2467 almost always too small; do not guess the size at all. 2468 New VENDOR_DEC for Compaq/DEC. Requested by James Seagraves of 2469 Compaq Computer Corp. 2470 Fix DaemonPortOptions IPv6 address parsing such that ::1 works 2471 properly. Problem noted by Valdis Kletnieks of Virginia 2472 Tech. 2473 Portability: 2474 Fix IPv6 network interface probing on HP-UX 11.X. Based on 2475 patch provided by HP. 2476 Mac OS X (aka Darwin) has a broken setreuid() call, but a 2477 working seteuid() call. From Daniel J. Luke. 2478 Use proper type for a 32-bit integer on SINIX. From Ganu 2479 Sachin of Siemens. 2480 Set SM_IO_MIN_BUF (4K) and SM_IO_MAX_BUF (8K) for HP-UX. 2481 Reduce optimization from +O3 to +O2 on HP-UX 11. This 2482 fixes a problem that caused additional bogus 2483 characters to be written to the qf file. Problem 2484 noted by Tapani Tarvainen. 2485 Set LDA_USE_LOCKF by default for UnixWare. Problem noted 2486 by Boyd Lynn Gerber. 2487 Add support for HP MPE/iX. See sendmail/README for port 2488 information. From Mark Bixby of Hewlett-Packard. 2489 New portability defines HASNICE, HASRRESVPORT, USE_ENVIRON, 2490 USE_DOUBLE_FORK, and NEEDLINK. See sendmail/README 2491 for more information. From Mark Bixby of 2492 Hewlett-Packard. 2493 If an OS doesn't have a method of finding free disk space 2494 (SFS_NONE), lie and say there is plenty of space. 2495 From Mark Bixby of Hewlett-Packard. 2496 Add support for AIX 5.1. From Valdis Kletnieks of 2497 Virginia Tech. 2498 Fix man page location for NeXTSTEP. From Hisanori Gogota 2499 of the NTT/InterCommunication Center. 2500 Do not assume that strerror() always returns a string. 2501 Problem noted by John Beck of Sun Microsystems. 2502 CONFIG: Add OSTYPE(freebsd5) for FreeBSD 5.X, which has removed 2503 UUCP from the base operating system. From Mark Murray of 2504 FreeBSD Services, Ltd. 2505 CONFIG: Add OSTYPE(mpeix) and a generic .mc file for HP MPE/iX 2506 systems. From Mark Bixby of Hewlett-Packard. 2507 CONFIG: Add support for selecting a queue group for all mailers. 2508 Based on proposal by Stephen L. Ulmer of the University of 2509 Florida. 2510 CONFIG: Fix error reporting for compat_check.m4. Problem noted by 2511 Altin Waldmann. 2512 CONFIG: Do not override user selections for confRUN_AS_USER and 2513 confTRUSTED_USER in FEATURE(msp). From Mark Bixby of 2514 Hewlett-Packard. 2515 LIBMILTER: Fix bug that prevented the removal of a socket after 2516 libmilter terminated. Problem reported by Andrey V. Pevnev 2517 of MSFU. 2518 LIBMILTER: Fix configuration error that required libsm for linking. 2519 Problem noted by Kari Hurtta of the Finnish Meteorological 2520 Institute. 2521 LIBMILTER: Portability fix for OpenUNIX. Patch from Larry Rosenman. 2522 LIBMILTER: Fix a theoretical memory leak and a possible attempt 2523 to free memory twice. 2524 LIBSM: Fix a potential segmentation violation in the I/O library. 2525 Problem found and analyzed by John Beck and Tim Haley 2526 of Sun Microsystems. 2527 LIBSM: Do not clear the LDAP configuration information when 2528 terminating the mailbox database connection in the LDAP 2529 example code. Problem noted by Nikos Voutsinas of the 2530 University of Athens. 2531 New Files: 2532 cf/cf/generic-mpeix.cf 2533 cf/cf/generic-mpeix.mc 2534 cf/ostype/freebsd5.m4 2535 cf/ostype/mpeix.m4 2536 devtools/OS/AIX.5.1 2537 devtools/OS/MPE-iX 2538 include/sm/os/sm_os_mpeix.h 2539 libsm/mpeix.c 2540 25418.12.1/8.12.1 2001/10/01 2542 SECURITY: Check whether dropping group privileges actually succeeded 2543 to avoid possible compromises of the mail system by 2544 supplying bogus data. Add configuration options for 2545 different set*gid() calls to reset saved gid. Problem 2546 found by Michal Zalewski. 2547 PRIVACY: Prevent information leakage when sendmail has extra 2548 privileges by disabling debugging (command line -d flag) 2549 during queue runs and disabling ETRN when sendmail -bs is 2550 used. Suggested by Michal Zalewski. 2551 Avoid memory corruption problems resulting from bogus .cf files. 2552 Problem found by Michal Zalewski. 2553 Set the ${server_addr} macro to name of mailer when doing LMTP 2554 delivery. LMTP systems may offer SMTP Authentication or 2555 STARTTLS causing sendmail to use this macro in rulesets. 2556 If debugging is turned on (-d0.10) print not just the default 2557 values for configuration file and pid file but also the 2558 selected values. Problem noted by Brad Chapman. 2559 Continue dealing with broken nameservers by ignoring SERVFAIL 2560 errors returned on T_AAAA (IPv6) lookups at delivery time 2561 if ResolverOptions=WorkAroundBrokenAAAA is set. Previously 2562 this only applied to hostname canonification. Problem 2563 noted by Bill Fenner of AT&T Research. 2564 Ignore comments in NIS host records when trying to find the 2565 canonical name for a host. 2566 When sendmail has extra privileges, limit mail submission command 2567 line flags (i.e., -G, -h, -F, etc.) to mail submission 2568 operating modes (i.e., -bm, -bs, -bv, etc.). Idea based on 2569 suggestion from Michal Zalewski. 2570 Portability: 2571 AIX: Use `oslevel` if available to determine OS version. 2572 `uname` does not given complete information. 2573 Problem noted by Keith Neufeld of the Cessna 2574 Aircraft Company. 2575 OpenUNIX: Use lockf() for LDA delivery (affects mail.local). 2576 Problem noticed by Boyd Lynn Gerber of ZENEX. 2577 Avoid compiler warnings by not using pointers to pass 2578 integers. Problem noted by Todd C. Miller of 2579 Courtesan Consulting. 2580 CONFIG: Add restrictqrun to PrivacyOptions for the MSP to minimize 2581 problems with potential misconfigurations. 2582 CONFIG: Fix comment showing default value of MaxHopCount. Problem 2583 noted by Greg Robinson of the Defence Science and 2584 Technology Organisation of Australia. 2585 CONFIG: dnsbl: If an argument specifies an error message in case 2586 of temporary lookup failures for DNS based blocklists 2587 then use it. 2588 LIBMILTER: Install mfdef.h, required by mfapi.h. Problem noted by 2589 Richard A. Nelson of Debian. 2590 LIBMILTER: Add __P definition for OS that lack it. Problem noted 2591 by Chris Adams from HiWAAY Informations Services. 2592 LIBSMDB: Fix a lock race condition that affects makemap, praliases, 2593 and vacation. 2594 MAKEMAP: Avoid going beyond the end of an input line if it does 2595 not contain a value for a key. Based on patch from 2596 Mark Bixby from Hewlett-Packard. 2597 New Files: 2598 test/Build 2599 test/Makefile 2600 test/Makefile.m4 2601 test/README 2602 test/t_dropgid.c 2603 test/t_setgid.c 2604 Deleted Files: 2605 include/sm/stdio.h 2606 include/sm/sysstat.h 2607 26088.12.0/8.12.0 2001/09/08 2609 *NOTICE*: The default installation of sendmail does not use 2610 set-user-ID root anymore. You need to create a new user and 2611 a new group before installing sendmail (both called smmsp by 2612 default). The installation process tries to install 2613 /etc/mail/submit.cf and creates /var/spool/clientmqueue by 2614 default. Please see sendmail/SECURITY for details. 2615 SECURITY: Check for group and world writable forward and :include: 2616 files. These checks can be turned off if absolutely 2617 necessary using the DontBlameSendmail option and the new 2618 flags: 2619 GroupWritableForwardFile 2620 WorldWritableForwardFile 2621 GroupWritableIncludeFile 2622 WorldWritableIncludeFile 2623 Problem noted by Slawek Zak of Politechnika Warszawska, 2624 SECURITY: Drop privileges when using address test mode. Suggested 2625 by Michal Zalewski of the "Internet for Schools" project 2626 (IdS). 2627 Fixed problem of a global variable being used for a timeout jump 2628 point where the variable could become overused for more than 2629 one timeout concurrently. This erroneous behavior resulted in 2630 a corrupted stack causing a core dump. The timeout is now 2631 handled via libsm. Problem noted by Michael Shapiro, 2632 John Beck, and Carl Smith of Sun Microsystems. 2633 If sendmail is set-group-ID then that group ID is used for permission 2634 checks (group ID of RunAsUser). This allows use of a 2635 set-group-ID sendmail binary for initial message submission 2636 and no set-user-ID root sendmail is needed. For details 2637 see sendmail/SECURITY. 2638 Log a warning if a non-trusted user changes the syslog label. 2639 Based on notice from Bryan Costales of SL3D, Inc. 2640 If sendmail is called for initial delivery, try to use submit.cf 2641 with a fallback of sendmail.cf as configuration file. See 2642 sendmail/SECURITY. 2643 New configuration file option UseMSP to allow group writable queue 2644 files if the group is the same as that of a set-group-ID 2645 sendmail binary. See sendmail/SECURITY. 2646 The .cf file is chosen based on the operation mode. For -bm (default), 2647 -bs, and -t it is submit.cf if it exists for all others it 2648 is sendmail.cf (to be backward compatible). This selection 2649 can be changed by the new option -Ac or -Am (alternative .cf 2650 file: client or mta). See sendmail/SECURITY. 2651 The SMTP server no longer forks on each MAIL command. The ONEX 2652 command has been removed. 2653 Implement SMTP PIPELINING per RFC 2920. It can be turned off 2654 at compile time or per host (ruleset). 2655 New option MailboxDatabase specifies the type of mailbox database 2656 used to look up local mail recipients; the default value 2657 is "pw", which means to use getpwnam(). New mailbox database 2658 types can be added by adding custom code to libsm/mbdb.c. 2659 Queue file names are now 15 characters long, rather than 14 characters 2660 long, to accommodate envelope splitting. File systems with 2661 a 14 character file name length limit are no longer 2662 supported. 2663 Recipient list used for delivery now gets internally ordered by 2664 hostsignature (character string version of MX RR). This orders 2665 recipients for the same MX RR's together meaning smaller 2666 portions of the list need to be scanned (instead of the whole 2667 list) each delivery() pass to determine piggybacking. The 2668 significance of the change is better the larger the recipient 2669 list. Hostsignature is now created during recipient list 2670 creation rather than just before delivery. 2671 Enhancements for more opportunistic piggybacking. Previous 2672 piggybacking (called coincidental) extended to coattail 2673 piggybacking. Rather than complete MX RR matching 2674 (coincidental) piggybacking is done if just the lowest value 2675 preference matches (coattail). 2676 If sendmail receives a temporary error on a RCPT TO: command, it will 2677 try other MX hosts if available. 2678 DefaultAuthInfo can contain a list of mechanisms to be used for 2679 outgoing (client-side) SMTP Authentication. 2680 New modifier 'A' for DaemonPortOptions/ClientPortOptions to disable 2681 AUTH (overrides 'a' modifier in DaemonPortOptions). Based 2682 on patch from Lyndon Nerenberg of Messaging Direct. 2683 Enable AUTH mechanism EXTERNAL if STARTTLS is used. 2684 A new ruleset authinfo can be used to return client side 2685 authentication information for AUTH instead of DefaultAuthInfo. 2686 Therefore the DefaultAuthInfo option is deprecated and will be 2687 removed in future versions. 2688 Accept any SMTP continuation code 3xy for AUTH even though RFC 2554 2689 requires 334. Mercury 1.48 is a known offender. 2690 Add new option AuthMaxBits to limit the overall encryption strength 2691 for the security layer in SMTP AUTH (SASL). See 2692 doc/op/op.me for details. 2693 Introduce new STARTTLS related macros {cn_issuer}, {cn_subject}, 2694 {cert_md5} which hold the CN (common name) of the CA that 2695 signed the presented certificate, the CN and the MD5 hash 2696 of the presented certificate, respectively. 2697 New ruleset try_tls to decide whether to try (as client) STARTTLS. 2698 New ruleset srv_features to enable/disable certain features in the 2699 server per connection. See doc/op/op.me for details. 2700 New ruleset tls_rcpt to decide whether to send e-mail to a particular 2701 recipient; useful to decide whether a connection is secure 2702 enough on a per recipient basis. 2703 New option TLSSrvOptions to modify some aspects of the server 2704 for STARTTLS. 2705 If no certificate has been requested, the macro {verify} has the 2706 value "NOT". 2707 New M=S modifier for ClientPortOptions/DaemonPortOptions to turn off 2708 using/offering STARTTLS when delivering/receiving e-mail. 2709 Macro expand filenames/directories for certs and keys in the .cf file. 2710 Proposed by Neil Rickert of Northern Illinois University. 2711 Generate an ephemeral RSA key for a STARTTLS connection only if 2712 really required. This change results in a noticeable 2713 performance gains on most machines. Moreover, if shared 2714 memory is in use, reuse the key several times. 2715 Add queue groups which can be used to group queue directories with 2716 the same behavior together. See doc/op/op.me for details. 2717 If the new option FastSplit (defaults to one) has a value greater 2718 than zero, it suppresses the MX lookups on addresses when they 2719 are initially sorted which may result in faster envelope 2720 splitting. If the mail is submitted directly from the 2721 command line, then the value also limits the number of 2722 processes to deliver the envelopes; if more envelopes are 2723 created they are only queued up and must be taken care of 2724 by a queue run. 2725 The check for 'enough disk space' now pays attention to which file 2726 system each queue directory resides in. 2727 All queue runners can be cleanly terminated via SIGTERM to parent. 2728 New option QueueFileMode for the default permissions of queue files. 2729 Add parallel queue runner code. Allows multiple queue runners per work 2730 group (one or more queues in a multi-queue environment 2731 collected together) to process the same work list at the 2732 same time. 2733 Option MaxQueueChildren added to limit the number of concurrently 2734 active queue runner processes. 2735 New option MaxRunnersPerQueue to specify the maximum number of queue 2736 runners per queue group. 2737 Queue member selection by substring pattern matching now allows 2738 the pattern to be negated. For -qI, -qR and -qS it is 2739 permissible for -q!I, -q!R and -q!S to mean remove members 2740 of the queue that match during processing. 2741 New -qp[time] option is similar to -qtime, except that instead of 2742 periodically forking a child to process the queue, a single 2743 child is forked for each queue that sleeps between queue 2744 runs. A SIGHUP signal can be sent to restart this 2745 persistent queue runner. 2746 The SIGHUP signal now restarts a timed queue run process (i.e., a 2747 sendmail process which only runs the queue at an interval: 2748 sendmail -q15m). 2749 New option NiceQueueRun to set the priority of queue runners. 2750 Proposed by Thom O'Connor. 2751 sendmail will run the queue(s) in the background when invoked with -q 2752 unless the new -qf option or -v is used. 2753 QueueSortOrder=Random sorts the queue randomly, which is useful if 2754 several queue runners are started by hand to avoid contention. 2755 QueueSortOrder=Modification sorts the queue by the modification time 2756 of the qf file (older entries first). 2757 Support Deliver By SMTP Service Extension (RFC 2852) which allows 2758 a client to specify an amount of time within which an e-mail 2759 should be delivered. New option DeliverByMin added to set the 2760 minimum amount of time or disable the extension. 2761 Non-printable characters (ASCII: 0-31, 127) in mailbox addresses are 2762 not allowed unless escaped or quoted. 2763 Add support for a generic DNS map. Based on a patch contributed 2764 by Leif Johansson of Stockholm University, which was based on 2765 work by Assar Westerlund of Swedish Institute of Computer 2766 Science, Kista, and Johan Danielsson of Royal Institute of 2767 Technology, Stockholm, Sweden. 2768 MX records will be looked up for FallBackMXhost. To use the old 2769 behavior (no MX lookups), put the name in square brackets. 2770 Proposed by Thom O'Connor. 2771 Use shared memory to store free space of filesystems that are used 2772 for queues, if shared memory is available and if a key is set 2773 via SharedMemoryKey. This minimizes the number of system 2774 calls to check the available space. See doc/op/op.me for 2775 details. 2776 If shared memory is compiled in the option -bP can be used to print 2777 the number of entries in the queue(s). 2778 Enable generic mail filter API (milter). See libmilter/README 2779 and the usual documentation for details. 2780 Remove AutoRebuildAliases option, deprecated since 8.10. 2781 Remove '-U' (initial user submission) command line option as 2782 announced in 8.10. 2783 Remove support for non-standard SMTP command XUSR. Use an MSA instead. 2784 New macro {addr_type} which contains whether the current address is 2785 an envelope sender or recipient address. Suggested by 2786 Neil Rickert of Northern Illinois University. 2787 Two new options for host maps: -d (retransmission timeout), 2788 -r (number of retries). 2789 New option for LDAP maps: the -V<sep> allows you to specify a 2790 separator such that a lookup can return both an attribute 2791 and value separated by the given separator. 2792 Add new operators '%', '|', '&' (modulo, binary or, binary and) 2793 to map class arith. 2794 If DoubleBounceAddress expands to an empty string, ``double bounces'' 2795 (errors that occur when sending an error message) are dropped. 2796 New DontBlameSendmail options GroupReadableSASLDBFile and 2797 GroupWritableSASLDBFile to relax requirements for sasldb files. 2798 New DontBlameSendmail options GroupReadableKeyFile to relax 2799 requirements for files containing secret keys. This is 2800 necessary for the MSP if client authentification is used. 2801 Properly handle quoted filenames for class files (to allow for 2802 filenames with spaces). 2803 Honor the resolver option RES_NOALIASES when canonifying hostnames. 2804 Add macros to avoid the reuse of {if_addr} etc: 2805 {if_name_out} hostname of interface of outgoing connection. 2806 {if_addr_out} address of interface of outgoing connection. 2807 {if_family_out} family of interface of outgoing connection. 2808 The latter two are only set if the interface does not belong 2809 to the loopback net. 2810 Add macro {nrcpts} which holds the number of (validated) recipients. 2811 DialDelay option applies only to mailers with flag 'Z'. Patch from 2812 Juergen Georgi of RUS University of Stuttgart. 2813 New Timeout.lhlo,auth,starttls options to limit the time waiting for 2814 an answer to the LMTP LHLO, SMTP AUTH or STARTTLS command. 2815 New Timeout.aconnect option to limit the overall waiting time for 2816 all connections for a single delivery attempt to succeed. 2817 Limit the rate recipients in the SMTP envelope are accepted once 2818 a threshold number of recipients has been rejected (option 2819 BadRcptThrottle). From Gregory A Lundberg of the WU-FTPD 2820 Development Group. 2821 New option DelayLA to delay connections if the load averages 2822 exceeds the specified value. The default of 0 does not 2823 change the previous behavior. A value greater than 0 2824 will cause sendmail to sleep for one second on most 2825 SMTP commands and before accepting connections if that 2826 load average is exceeded. 2827 Use a dynamic (instead of fixed-size) buffer for the list of 2828 recipients that are sent during a connection to a mailer. 2829 This also introduces a new mailer field 'r' which defines 2830 the maximum number of recipients (defaults to 100). 2831 Based on patch by Motonori Nakamura of Kyoto University. 2832 Add new F=1 mailer flag to disable sending of null characters ('\0'). 2833 Add new F=2 mailer flag to disable use of ESMTP, using SMTP instead. 2834 The deprecated [TCP] builtin mailer pathname (P=) is gone. Use [IPC] 2835 instead. 2836 IPC is no longer available as first mailer argument (A=) for [IPC] 2837 builtin mailer pathnames. Use TCP instead. 2838 PH map code updated to use the new libphclient API instead of the 2839 old libqiapi library. Contributed by Mark Roth of the 2840 University of Illinois at Urbana-Champaign. 2841 New option DirectSubmissionModifiers to define {daemon_flags} 2842 for direct (command line) submissions. 2843 New M=O modifier for DaemonPortOptions to ignore the socket in 2844 case of failures. Based on patch by Jun-ichiro itojun 2845 Hagino of the KAME Project. 2846 Add Disposition-Notification-To: (RFC 2298) to the list of headers 2847 whose content is rewritten similar to Reply-To:. 2848 Proposed by Andrzej Filip. 2849 Use STARTTLS/AUTH=server/client for logging incoming/outgoing 2850 STARTTLS/AUTH connections; log incoming connections at level 2851 9 or higher. Use AUTH/STARTTLS instead of SASL/TLS for SMTP 2852 AUTH/STARTTLS related logfile entries. 2853 Convert unprintable characters (and backslash) into octal or C format 2854 before logging. 2855 Log recipients if no message is transferred but QUIT/RSET is given 2856 (at LogLevel 9/10 or higher). 2857 Log discarded recipients at LogLevel 10 or higher. 2858 Do not log "did not issue MAIL/EXPN/VRFY/ETRN" for connections 2859 in which most commands are rejected due to check_relay or 2860 TCP Wrappers if the host tries one of those commands anyway. 2861 Change logging format for cloned envelopes to be similar to that for 2862 DSNs ("old id: new id: clone"). Suggested by Ulrich Windl 2863 of the Universitat Regensburg. 2864 Added libsm, a C library of general purpose abstractions including 2865 assertions, tracing and debugging with named debug categories, 2866 exception handling, malloc debugging, resource pools, 2867 portability abstractions, and an extensible buffered I/O 2868 package. It will at some point replace libsmutil. 2869 See libsm/index.html for details. 2870 Fixed most memory leaks in sendmail which were previously taken 2871 care of by fork() and exit(). 2872 Use new sm_io*() functions in place of stdio calls. Allows for 2873 more consistent portablity amongst different platforms 2874 new and old (from new libsm). 2875 Common I/O pkg means just one buffering method needed instead of two 2876 ('bf_portable' and 'bf_torek' now just 'bf'). 2877 Sfio no longer needed as SASL/TLS code uses sm_io*() API's. 2878 New possible value 'interactive' for SuperSafe which can be used 2879 together with DeliveryMode=interactive is to avoid some disk 2880 synchronizations calls. 2881 Add per-recipient status information to mailq -v output. 2882 T_ANY queries are no longer used by sendmail. 2883 When compiling with "gcc -O -Wall" specify "-DSM_OMIT_BOGUS_WARNINGS" 2884 too (see include/sm/cdefs.h for more info). 2885 sendmail -d now has general support for named debug categories. 2886 See libsm/debug.html and section 3.4 of doc/op/op.me 2887 for details. 2888 Eliminate the "postmaster warning" DSNs on address parsing errors 2889 such as unbalanced angle brackets or parentheses. The DSNs 2890 generated by this condition were illegal (not RFC conform). 2891 Problem noted by Ulrich Windl of the Universitaet Regensburg. 2892 Do not issue a DSN if the ruleset localaddr resolves to the $#error 2893 mailer and the recipient has hence been rejected during the 2894 SMTP dialogue. Problem reported by Larry Greenfield of CMU. 2895 Deal with a case of multiple deliveries on misconfigured systems 2896 that do not have postmaster defined. If an email was sent 2897 from an address to which a DSN cannot be returned and 2898 in which at least one recipient address is non-deliverable, 2899 then that email had been delivered in each queue run. 2900 Problem reported by Matteo HCE Valsasna of Universita 2901 degli Studi dell'Insubria. 2902 The compilation options SMTP, DAEMON, and QUEUE have been removed, 2903 i.e., the corresponding code is always compiled in now. 2904 Log the command line in daemon/queue-run mode at LogLevel 10 and 2905 higher. Suggested by Robert Harker of Harker Systems. 2906 New ResolverOptions setting: WorkAroundBrokenAAAA. When 2907 attempting to canonify a hostname, some broken nameservers 2908 will return SERVFAIL (a temporary failure) on T_AAAA (IPv6) 2909 lookups. If you want to excuse this behavior, use this new 2910 flag. Suggested by Chris Foote of SE Network Access and 2911 Mark Roth of the University of Illinois at 2912 Urbana-Champaign. 2913 Free the memory allocated by getipnodeby{addr,name}(). Problem 2914 noted by Joy Latten of IBM. 2915 ConnectionRateThrottle limits the number of connections per second 2916 to each daemon individually, not the overall number of 2917 connections. 2918 Specifying only "ldap:" as an AliasFile specification will force 2919 sendmail to use a default alias schema as outlined in the 2920 ``USING LDAP FOR ALIASES, MAPS, and CLASSES'' section of 2921 cf/README. 2922 Add a new syntax for the 'F' (file class) sendmail.cf command. If 2923 the first character after the class name is not a '/' or a 2924 '|' and it contains an '@' (e.g., F{X}key@class:spec), the 2925 rest of the line will be parsed as a map lookup. This 2926 allows classes to be filled via a map lookup. See op.me 2927 for more syntax information. Specifically, this can be 2928 used for commands such as VIRTUSER_DOMAIN_FILE() to read 2929 the list of domains via LDAP (see the ``USING LDAP FOR 2930 ALIASES, MAPS, and CLASSES'' section of cf/README for an 2931 example). 2932 The new macro ${sendmailMTACluster} determines the LDAP cluster for 2933 the default schema used in the above two items. 2934 Unless DontBlameSendmail=RunProgramInUnsafeDirPath is set, log a 2935 warning if a program being run from a mailer or file class 2936 (e.g., F|/path/to/prog) is in an unsafe directory path. 2937 Unless DontBlameSendmail=RunWritableProgram is set, log a warning 2938 if a program being run from a mailer or file class 2939 (e.g., F|/path/to/prog) is group or world writable. 2940 Loopback interfaces (e.g., "lo0") are now probed for class {w} 2941 hostnames. Setting DontProbeInterfaces to "loopback" 2942 (without quotes) will disable this and return to the 2943 pre-8.12 behavior of only probing non-loopback interfaces. 2944 Suggested by Bryan Stansell of GNAC. 2945 In accordance with RFC 2821 section 4.1.4, accept multiple 2946 HELO/EHLO commands. 2947 Multiple ClientPortOptions settings are now allowed, one for each 2948 possible protocol family which may be used for outgoing 2949 connections. Restrictions placed on one family only affect 2950 outgoing connections on that particular family. Because of 2951 this change, the ${client_flags} macro is not set until the 2952 connection is established. Based on patch from Motonori 2953 Nakamura of Kyoto University. 2954 PrivacyOptions=restrictexpand instructs sendmail to drop privileges 2955 when the -bv option is given by users who are neither root 2956 nor the TrustedUser so users can not read private aliases, 2957 forwards, or :include: files. It also will override the -v 2958 (verbose) command line option. 2959 If the M=b modifier is set in DaemonPortOptions and the interface 2960 address can't be used for the outgoing connection, fall 2961 back to the settings in ClientPortOptions (if set). 2962 Problem noted by John Beck of Sun Microsystems. 2963 New named config file rule check_data for DATA command (input: 2964 number of recipients). Based on patch from Mark Roth of 2965 the University of Illinois at Urbana-Champaign. 2966 Add support for ETRN queue selection per RFC 1985. The queue group 2967 can be specified using the '#' option character. For 2968 example, 'ETRN #queuegroup'. 2969 If an LDAP server times out or becomes unavailable, close the 2970 current connection and reopen to get to one of the fallback 2971 servers. Patch from Paul Hilchey of the University of 2972 British Columbia. 2973 Make default error number on $#error messages 550 instead of 501 2974 because 501 is not allowed on all commands. 2975 The .cf file option UnsafeGroupWrites is deprecated, it should be 2976 replaced with the settings GroupWritableForwardFileSafe 2977 and GroupWritableIncludeFileSafe in DontBlameSendmail 2978 if required. 2979 The deprecated ldapx map class has been removed. Use the ldap map 2980 class instead. 2981 Any IPv6 addresses used in configuration should be prefixed by the 2982 "IPv6:" tag to identify the address properly. For example, 2983 if you want to add the IPv6 address [2002:c0a8:51d2::23f4] to 2984 class {w}, you would need to add [IPv6:2002:c0a8:51d2::23f4]. 2985 Change the $&{opMode} macro if the operation mode changes while the 2986 MTA is running. For example, during a queue run. 2987 Add "use_inet6" as a new ResolverOptions flag to control the 2988 RES_USE_INET6 resolver option. Based on patch from Rick 2989 Nelson of IBM. 2990 The maximum number of commands before the MTA slows down when too 2991 many "light weight" commands have been received are now 2992 configurable during compile time. The current values and 2993 their defaults are: 2994 MAXBADCOMMANDS 25 unknown commands 2995 MAXNOOPCOMMANDS 20 NOOP, VERB, ONEX, XUSR 2996 MAXHELOCOMMANDS 3 HELO, EHLO 2997 MAXVRFYCOMMANDS 6 VRFY, EXPN 2998 MAXETRNCOMMANDS 8 ETRN 2999 Setting a value to 0 disables the check. Patch from Bryan 3000 Costales of SL3D, Inc. 3001 The header syntax H?${MyMacro}?X-My-Header: now not only checks if 3002 ${MyMacro} is defined but also that it is not empty. 3003 Properly quote usernames with special characters if they are used 3004 in headers. Problem noted by Kari Hurtta of the Finnish 3005 Meteorological Institute. 3006 Be sure to include the proper Final-Recipient: DSN header in bounce 3007 messages for messages for mailing list expanded addresses 3008 which are not delivered on the initial attempt. 3009 Do not treat errors as sticky when doing delivery via LMTP after 3010 the final dot has been sent to avoid affecting future 3011 deliveries. Problem reported by Larry Greenfield of CMU. 3012 New compile time flag REQUIRES_DIR_FSYNC which turns on support for 3013 file systems that require to call fsync() for a directory 3014 if the meta-data in it has been changed. This should be 3015 set at least for ReiserFS; it is enabled by default for Linux. 3016 See sendmail/README for further information. 3017 Avoid file locking deadlock when updating the statistics file if 3018 sendmail is signaled to terminate. Problem noted by 3019 Christophe Wolfhugel of France Telecom. 3020 Set the $c macro (hop count) as it is being set instead of when the 3021 envelope is initialized. Problem noted by Kari Hurtta of 3022 the Finnish Meteorological Institute. 3023 Properly count recipients for DeliveryMode defer and queue. Fix 3024 from Peter A. Friend of EarthLink. 3025 Treat invalid hesiod lookups as permanent errors instead of 3026 temporary errors. Problem noted by Russell McOrmond of 3027 flora.ca. 3028 Portability: 3029 Remove support for AIX 2, which supports only 14 character 3030 filenames and is outdated anyway. Suggested by 3031 Valdis Kletnieks of Virginia Tech. 3032 Change several settings for Irix 6: remove confSBINDIR, 3033 i.e., use default /usr/sbin, change owner/group 3034 of man pages and user-executable to root/sys, set 3035 optimization limit to 0 (unlimited). Based on patch 3036 from Ayamura Kikuchi, M.D, and proposal from Kari 3037 Hurtta of the Finnish Meteorological Institute. 3038 Do not assume LDAP support is installed by default under 3039 Solaris 8 and later. 3040 Add support for OpenUNIX. 3041 CONFIG: Increment version number of config file to 10. 3042 CONFIG: Add an install target and a README file in cf/cf. 3043 CONFIG: Don't accept addresses of the form a@b@, a@b@c, a@[b]c, etc. 3044 CONFIG: Reject empty recipient addresses (in check_rcpt). 3045 CONFIG: The access map uses an option of -T<TMPF> to deal with 3046 temporary lookup failures. 3047 CONFIG: New value for access map: SKIP, which causes the default 3048 action to be taken by aborting the search for domain names 3049 or IP nets. 3050 CONFIG: check_rcpt can deal with TEMPFAIL for either recipient or 3051 relay address as long as the other part allows the email 3052 to get through. 3053 CONFIG: Entries for virtusertable can make use of a third parameter 3054 "%3" which contains "+detail" of a wildcard match, i.e., an 3055 entry like user+*@domain. This allows handling of details by 3056 using %1%3 as the RHS. Additionally, a "+" wildcard has been 3057 introduced to match only non-empty details of addresses. 3058 CONFIG: Numbers for rulesets used by MAILERs have been removed 3059 and hence there is no required order within the MAILER 3060 section anymore except for MAILER(`uucp') which must come 3061 after MAILER(`smtp') if uucp-dom and uucp-uudom are used. 3062 CONFIG: Hosts listed in the generics domain class {G} 3063 (GENERICS_DOMAIN() and GENERICS_DOMAIN_FILE()) are treated 3064 as canonical. Suggested by Per Hedeland of Ericsson. 3065 CONFIG: If FEATURE(`delay_checks') is used, make sure that a lookup 3066 in the access map which returns OK or RELAY actually 3067 terminates check_* ruleset checking. 3068 CONFIG: New tag TLS_Rcpt: for access map to be used by ruleset 3069 tls_rcpt, see cf/README for details. 3070 CONFIG: Change format of Received: header line which reveals whether 3071 STARTTLS has been used to "(version=${tls_version} 3072 cipher=${cipher} bits=${cipher_bits} verify=${verify})". 3073 CONFIG: Use "Spam:" as tag for lookups for FEATURE(`delay_checks') 3074 options friends/haters instead of "To:" and enable 3075 specification of whole domains instead of just users. 3076 Notice: this change is not backward compatible. 3077 Suggested by Chris Adams from HiWAAY Informations Services. 3078 CONFIG: Allow for local extensions for most new rulesets, see 3079 cf/README for details. 3080 CONFIG: New FEATURE(`lookupdotdomain') to lookup also .domain in 3081 the access map. Proposed by Randall Winchester of the 3082 University of Maryland. 3083 CONFIG: New FEATURE(`local_no_masquerade') to avoid masquerading for 3084 the local mailer. Proposed by Ingo Brueckl of Wupper Online. 3085 CONFIG: confRELAY_MSG/confREJECT_MSG can override the default 3086 messages for an unauthorized relaying attempt/for access 3087 map entries with RHS REJECT, respectively. 3088 CONFIG: FEATURE(`always_add_domain') takes an optional argument 3089 to specify another domain to be added instead of the local one. 3090 Suggested by Richard H. Gumpertz of Computer Problem 3091 Solving. 3092 CONFIG: confAUTH_OPTIONS allows setting of Cyrus-SASL specific 3093 options, see doc/op/op.me for details. 3094 CONFIG: confAUTH_MAX_BITS sets the maximum encryption strength for 3095 the security layer in SMTP AUTH (SASL). 3096 CONFIG: If Local_localaddr resolves to $#ok, localaddr is terminated 3097 immediately. 3098 CONFIG: FEATURE(`enhdnsbl') is an enhanced version of dnsbl which 3099 allows checking of the return values of the DNS lookups. 3100 See cf/README for details. 3101 CONFIG: FEATURE(`dnsbl') allows now to specify the behavior for 3102 temporary lookup failures. 3103 CONFIG: New option confDELIVER_BY_MIN to specify minimum time for 3104 Deliver By (RFC 2852) or to turn off the extension. 3105 CONFIG: New option confSHARED_MEMORY_KEY to set the key for shared 3106 memory use. 3107 CONFIG: New FEATURE(`compat_check') to look up a key consisting 3108 of the sender and the recipient address delimited by the 3109 string "<@>", e.g., sender@sdomain<@>recipient@rdomain, 3110 in the access map. Based on code contributed by Mathias 3111 Koerber of Singapore Telecommunications Ltd. 3112 CONFIG: Add EXPOSED_USER_FILE() command to allow an exposed user 3113 file. Suggested by John Beck of Sun Microsystems. 3114 CONFIG: Don't use MAILER-DAEMON for error messages delivered 3115 via LMTP. Problem reported by Larry Greenfield of CMU. 3116 CONFIG: New FEATURE(`preserve_luser_host') to preserve the name of 3117 the recipient host if LUSER_RELAY is used. 3118 CONFIG: New FEATURE(`preserve_local_plus_detail') to preserve the 3119 +detail portion of the address when passing address to 3120 local delivery agent. Disables alias and .forward +detail 3121 stripping. Only use if LDA supports this. 3122 CONFIG: Removed deprecated FEATURE(`rbl'). 3123 CONFIG: Add LDAPROUTE_EQUIVALENT() and LDAPROUTE_EQUIVALENT_FILE() 3124 which allow you to specify 'equivalent' hosts for LDAP 3125 Routing lookups. Equivalent hostnames are replaced by the 3126 masquerade domain name for lookups. See cf/README for 3127 additional details. 3128 CONFIG: Add a fourth argument to FEATURE(`ldap_routing') which 3129 instructs the rulesets on what to do if the address being 3130 looked up has +detail information. See cf/README for more 3131 information. 3132 CONFIG: When chosing a new destination via LDAP Routing, also look 3133 up the new routing address/host in the mailertable. Based 3134 on patch from Don Badrak of the United States Census Bureau. 3135 CONFIG: Do not reject the SMTP Mail from: command if LDAP Routing 3136 is in use and the bounce option is enabled. Only reject 3137 recipients as user unknown. 3138 CONFIG: Provide LDAP support for the remaining database map 3139 features. See the ``USING LDAP FOR ALIASES AND MAPS'' 3140 section of cf/README for more information. 3141 CONFIG: Add confLDAP_CLUSTER which defines the ${sendmailMTACluster} 3142 macro used for LDAP searches as described above in ``USING 3143 LDAP FOR ALIASES, MAPS, AND CLASSES''. 3144 CONFIG: confCLIENT_OPTIONS has been replaced by CLIENT_OPTIONS(), 3145 which takes the options as argument and can be used 3146 multiple times; see cf/README for details. 3147 CONFIG: Add configuration macros for new options: 3148 confBAD_RCPT_THROTTLE BadRcptThrottle 3149 confDIRECT_SUBMISSION_MODIFIERS DirectSubmissionModifiers 3150 confMAILBOX_DATABASE MailboxDatabase 3151 confMAX_QUEUE_CHILDREN MaxQueueChildren 3152 confMAX_RUNNERS_PER_QUEUE MaxRunnersPerQueue 3153 confNICE_QUEUE_RUN NiceQueueRun 3154 confQUEUE_FILE_MODE QueueFileMode 3155 confFAST_SPLIT FastSplit 3156 confTLS_SRV_OPTIONS TLSSrvOptions 3157 See above (and related documentation) for further information. 3158 CONFIG: Add configuration variables for new timeout options: 3159 confTO_ACONNECT Timeout.aconnect 3160 confTO_AUTH Timeout.auth 3161 confTO_LHLO Timeout.lhlo 3162 confTO_STARTTLS Timeout.starttls 3163 CONFIG: Add configuration macros for mail filter API: 3164 confINPUT_MAIL_FILTERS InputMailFilters 3165 confMILTER_LOG_LEVEL Milter.LogLevel 3166 confMILTER_MACROS_CONNECT Milter.macros.connect 3167 confMILTER_MACROS_HELO Milter.macros.helo 3168 confMILTER_MACROS_ENVFROM Milter.macros.envfrom 3169 confMILTER_MACROS_ENVRCPT Milter.macros.envrcpt 3170 Mail filters can be defined via INPUT_MAIL_FILTER() and 3171 MAIL_FILTER(). See libmilter/README, cf/README, and 3172 doc/op/op.me for details. 3173 CONFIG: Add support for accepting temporarily unresolvable domains. 3174 See cf/README for details. Based on patch by Motonori 3175 Nakamura of Kyoto University. 3176 CONFIG: confDEQUOTE_OPTS can be used to specify options for the 3177 dequote map. 3178 CONFIG: New macro QUEUE_GROUP() to define queue groups. 3179 CONFIG: New FEATURE(`queuegroup') to select a queue group based 3180 on the full e-mail address or the domain of the recipient. 3181 CONFIG: Any IPv6 addresses used in configuration should be prefixed 3182 by the "IPv6:" tag to identify the address properly. For 3183 example, if you want to use the IPv6 address 3184 2002:c0a8:51d2::23f4 in the access database, you would need 3185 to use IPv6:2002:c0a8:51d2::23f4 on the left hand side. 3186 This affects the access database as well as the 3187 relay-domains and local-host-names files. 3188 CONFIG: OSTYPE(aux) has been renamed to OSTYPE(a-ux). 3189 CONFIG: Avoid expansion of m4 keywords in SMART_HOST. 3190 CONFIG: Add MASQUERADE_EXCEPTION_FILE() for reading masquerading 3191 exceptions from a file. Suggested by Trey Breckenridge of 3192 Mississippi State University. 3193 CONFIG: Add LOCAL_USER_FILE() for reading local users 3194 (LOCAL_USER() -- $={L}) entries from a file. 3195 CONTRIB: dnsblaccess.m4 is a further enhanced version of enhdnsbl.m4 3196 which allows to lookup error codes in the access map. 3197 Contributed by Neil Rickert of Northern Illinois University. 3198 DEVTOOLS: Add new options for installation of include and library 3199 files: confINCGRP, confINCMODE, confINCOWN, confLIBGRP, 3200 confLIBMODE, confLIBOWN. 3201 DEVTOOLS: Add new option confDONT_INSTALL_CATMAN to turn off 3202 installation of the the formatted man pages on operating 3203 systems which don't include cat directories. 3204 EDITMAP: New program for editing maps as supplement to makemap. 3205 MAIL.LOCAL: Mail.local now uses the libsm mbdb package to look up 3206 local mail recipients. New option -D mbdb specifies the 3207 mailbox database type. 3208 MAIL.LOCAL: New option "-h filename" which instructs mail.local to 3209 deliver the mail to the named file in the user's home 3210 directory instead of the system mail spool area. Based on 3211 patch from Doug Hardie of the Los Angeles Free-Net. 3212 MAILSTATS: New command line option -P which acts the same as -p but 3213 doesn't truncate the statistics file. 3214 MAKEMAP: Add new option -t to specify a different delimiter 3215 instead of white space. 3216 RMAIL: Invoke sendmail with '-G' to indicate this is a gateway 3217 submission. Problem noted by Kari Hurtta of the Finnish 3218 Meteorological Institute. 3219 SMRSH: Use the vendor supplied directory on FreeBSD 3.3 and later. 3220 VACATION: Change Auto-Submitted: header value from auto-generated to 3221 auto-replied. From Kenneth Murchison of Oceana Matrix Ltd. 3222 VACATION: New option -d to send error/debug messages to stdout 3223 instead of syslog. 3224 VACATION: New option -U which prevents the attempt to lookup login 3225 in the password file. The -f and -m options must be used 3226 to specify the database and message file since there is no 3227 home directory for the default settings for these options. 3228 VACATION: Vacation now uses the libsm mbdb package to look up 3229 local mail recipients; it reads the MailboxDatabase option 3230 from the sendmail.cf file. New option -C cffile which 3231 specifies the path of the sendmail.cf file. 3232 New Directories: 3233 libmilter/docs 3234 New Files: 3235 cf/cf/README 3236 cf/cf/submit.cf 3237 cf/cf/submit.mc 3238 cf/feature/authinfo.m4 3239 cf/feature/compat_check.m4 3240 cf/feature/enhdnsbl.m4 3241 cf/feature/msp.m4 3242 cf/feature/local_no_masquerade.m4 3243 cf/feature/lookupdotdomain.m4 3244 cf/feature/preserve_luser_host.m4 3245 cf/feature/preserve_local_plus_detail.m4 3246 cf/feature/queuegroup.m4 3247 cf/sendmail.schema 3248 contrib/dnsblaccess.m4 3249 devtools/M4/UNIX/sm-test.m4 3250 devtools/OS/OpenUNIX.5.i386 3251 editmap/* 3252 include/sm/* 3253 libsm/* 3254 libsmutil/cf.c 3255 libsmutil/err.c 3256 sendmail/SECURITY 3257 sendmail/TUNING 3258 sendmail/bf.c 3259 sendmail/bf.h 3260 sendmail/sasl.c 3261 sendmail/sm_resolve.c 3262 sendmail/sm_resolve.h 3263 sendmail/tls.c 3264 Deleted Files: 3265 cf/feature/rbl.m4 3266 cf/ostype/aix2.m4 3267 devtools/OS/AIX.2 3268 include/sendmail/cdefs.h 3269 include/sendmail/errstring.h 3270 include/sendmail/useful.h 3271 libsmutil/errstring.c 3272 sendmail/bf_portable.c 3273 sendmail/bf_portable.h 3274 sendmail/bf_torek.c 3275 sendmail/bf_torek.h 3276 sendmail/clock.c 3277 Renamed Files: 3278 cf/cf/generic-solaris2.mc => cf/cf/generic-solaris.mc 3279 cf/cf/generic-solaris2.cf => cf/cf/generic-solaris.cf 3280 cf/ostype/aux.m4 => cf/ostype/a-ux.m4 3281 32828.11.7/8.11.7 2003/03/29 3283 SECURITY: Fix a remote buffer overflow in header parsing by 3284 dropping sender and recipient header comments if the 3285 comments are too long. Problem noted by Mark Dowd 3286 of ISS X-Force. 3287 SECURITY: Fix a buffer overflow in address parsing due to 3288 a char to int conversion problem which is potentially 3289 remotely exploitable. Problem found by Michal Zalewski. 3290 Note: an MTA that is not patched might be vulnerable to 3291 data that it receives from untrusted sources, which 3292 includes DNS. 3293 To provide partial protection to internal, unpatched sendmail MTAs, 3294 8.11.7 changes by default (char)0xff to (char)0x7f in 3295 headers etc. To turn off this conversion compile with 3296 -DALLOW_255 or use the command line option -d82.101. 3297 To provide partial protection for internal, unpatched MTAs that may be 3298 performing 7->8 or 8->7 bit MIME conversions, the default 3299 for MaxMimeHeaderLength has been changed to 2048/1024. 3300 Note: this does have a performance impact, and it only 3301 protects against frontal attacks from the outside. 3302 To disable the checks and return to pre-8.11.7 defaults, 3303 set MaxMimeHeaderLength to 0/0. 3304 Properly clean up macros to avoid persistence of session data 3305 across various connections. This could cause session 3306 oriented restrictions, e.g., STARTTLS requirements, 3307 to erroneously allow a connection. Problem noted 3308 by Tim Maletic of Priority Health. 3309 Ignore comments in NIS host records when trying to find the 3310 canonical name for a host. 3311 Fix a memory leak when closing Hesiod maps. 3312 Set ${msg_size} macro when reading a message from the command line 3313 or the queue. 3314 Prevent a segmentation fault when clearing the event list by 3315 turning off alarms before checking if event list is 3316 empty. Problem noted by Allan E Johannesen of Worcester 3317 Polytechnic Institute. 3318 Fix a potential core dump problem if the environment variable 3319 NAME is set. Problem noted by Beth A. Chaney of 3320 Purdue University. 3321 Prevent a race condition on child cleanup for delivery to files. 3322 Problem noted by Fletcher Mattox of the University of 3323 Texas. 3324 CONFIG: Do not bounce mail if FEATURE(`ldap_routing')'s bounce 3325 parameter is set and the LDAP lookup returns a temporary 3326 error. 3327 CONFIG: Fix a syntax error in the try_tls ruleset if 3328 FEATURE(`access_db') is not enabled. 3329 LIBSMDB: Fix a lock race condition that affects makemap, praliases, 3330 and vacation. 3331 LIBSMDB: Avoid a file creation race condition for Berkeley DB 1.X 3332 and NDBM on systems with the O_EXLOCK open(2) flag. 3333 MAKEMAP: Avoid going beyond the end of an input line if it does 3334 not contain a value for a key. Based on patch from 3335 Mark Bixby from Hewlett-Packard. 3336 MAIL.LOCAL: Fix a truncation race condition if the close() on 3337 the mailbox fails. Problem noted by Tomoko Fukuzawa of 3338 Sun Microsystems. 3339 SMRSH: SECURITY: Only allow regular files or symbolic links to be 3340 used for a command. Problem noted by David Endler of 3341 iDEFENSE, Inc. 3342 33438.11.6/8.11.6 2001/08/20 3344 SECURITY: Fix a possible memory access violation when specifying 3345 out-of-bounds debug parameters. Problem detected by 3346 Cade Cairns of SecurityFocus. 3347 Avoid leaking recipient information in unrelated DSNs. This could 3348 happen if a connection is aborted, several mails had been 3349 scheduled for delivery via that connection, and the timeout 3350 is reached such that several DSNs are sent next. Problem 3351 noted by Dileepan Moorkanat of Hewlett-Packard. 3352 Fix a possible segmentation violation when specifying too many 3353 wildcard operators in a rule. Problem detected by 3354 Werner Wiethege. 3355 Avoid a segmentation fault on non-matching Hesiod lookups. Problem 3356 noted by Russell McOrmond of flora.ca 3357 33588.11.5/8.11.5 2001/07/31 3359 Fix a possible race condition when sending a HUP signal to restart 3360 the daemon. This could terminate the current process without 3361 starting a new daemon. Problem reported by Wolfgang Breyha 3362 of SE Netway Communications. 3363 Only apply MaxHeadersLength when receiving a message via SMTP or 3364 the command line. Problem noted by Andrey J. Melnikoff. 3365 When finding the system's local hostname on an IPv6-enabled system 3366 which doesn't have any IPv6 interface addresses, fall back 3367 to looking up only IPv4 addresses. Problem noted by Tim 3368 Bosserman of EarthLink. 3369 When commands were being rejected due to check_relay or TCP 3370 Wrappers, the ETRN command was not giving a response. 3371 Incoming IPv4 connections on a Family=inet6 daemon (using 3372 IPv4-mapped addresses) were incorrectly labeled as "may be 3373 forged". Problem noted by Per Steinar Iversen of Oslo 3374 University College. 3375 Shutdown address test mode cleanly on SIGTERM. Problem noted by 3376 Greg King of the OAO Corporation. 3377 Restore the original real uid (changed in main() to prevent 3378 out of band signals) before invoking a delivery agent. 3379 Some delivery agents use this for the "From " envelope 3380 "header". Problem noted by Leslie Carroll of the 3381 University at Albany. 3382 Mark closed file descriptors properly to avoid reuse. Problem 3383 noted by Jeff Bronson of J.D. Bronson, Inc. 3384 Setting Timeout options on the command line will also override 3385 their sub-suboptions in the .cf file, e.g., -O 3386 Timeout.queuereturn=2d will set all queuereturn timeouts 3387 to 2 days. Problem noted by Roger B.A. Klorese. 3388 Portability: 3389 BSD/OS has a broken setreuid() implementation. Problem 3390 noted by Vernon Schryver of Rhyolite Software. 3391 BSD/OS has /dev/urandom(4) (as of version 4.1/199910 ?). 3392 Noted by Vernon Schryver of Rhyolite Software. 3393 BSD/OS has fchown(2). Noted by Dave Yadallee of Netline 3394 2000 Internet Solutions Inc. 3395 Solaris 2.X and later have strerror(3). From Sebastian 3396 Hagedorn of Cologne University. 3397 CONFIG: Fix parsing for IPv6 domain literals in addresses 3398 (user@[IPv6:address]). Problem noted by Liyuan Zhou. 3399 34008.11.4/8.11.4 2001/05/28 3401 Clean up signal handling routines to reduce the chances of heap 3402 corruption and other potential race conditions. 3403 Terminating and restarting the daemon may not be 3404 instantaneous due to this change. Also, non-root users can 3405 no longer send out-of-band signals. Problem reported by 3406 Michal Zalewski of BindView. 3407 If LogLevel is greater than 9 and SASL fails to negotiate an 3408 encryption layer, avoid core dump logging the encryption 3409 strength. Problem noted by Miroslav Zubcic of Crol. 3410 If a server offers "AUTH=" and "AUTH " and the list of mechanisms is 3411 different in those two lines, sendmail might not have 3412 recognized (and used) all of the offered mechanisms. 3413 Fix an IP address lookup problem on Solaris 2.0 - 2.3. Patch 3414 from Kenji Miyake. 3415 This time, really don't use the .. directory when expanding 3416 QueueDirectory wildcards. 3417 If a process is interrupted while closing a map, don't try to close 3418 the same map again while exiting. 3419 Allow local mailers (F=l) to contact remote hosts (e.g., via 3420 LMTP). Problem noted by Norbert Klasen of the University 3421 of Tuebingen. 3422 If Timeout.QueueReturn was set to a value less the time it took 3423 to write a new queue file (e.g., 0 seconds), the bounce 3424 message would be lost. Problem noted by Lorraine L Goff of 3425 Oklahoma State University. 3426 Pass map argument vector into map rewriting engine for the regex 3427 and prog map types. Problem noted by Stephen Gildea of 3428 InTouch Systems, Inc. 3429 When closing an LDAP map due to a temporary error, close all of the 3430 other LDAP maps which share the original map's connection 3431 to the LDAP server. Patch from Victor Duchovni of 3432 Morgan Stanley. 3433 To detect changes of NDBM aliases files check the timestamp of the 3434 .pag file instead of the .dir file. Problem noted by Neil 3435 Rickert of Northern Illinois University. 3436 Don't treat temporary hesiod lookup failures as permanent. Patch 3437 from Werner Wiethege. 3438 If ClientPortOptions is set, make sure to create the outgoing socket 3439 with the family set in that option. Patch from Sean Farley. 3440 Avoid a segmentation fault trying to dereference a NULL pointer 3441 when logging a MaxHopCount exceeded error with an empty 3442 recipient list. Problem noted by Chris Adams of HiWAAY 3443 Internet Services. 3444 Fix DSN for "Too many hops" bounces. Problem noticed by Ulrich 3445 Windl of the Universitaet Regensburg. 3446 Fix DSN for "mail loops back to me" bounces. Problem noticed by 3447 Kari Hurtta of the Finnish Meteorological Institute. 3448 Portability: 3449 OpenBSD has a broken setreuid() implementation. 3450 CONFIG: Undo change from 8.11.1: change 501 SMTP reply code back 3451 to 553 since it is allowed by DRUMS. 3452 CONFIG: Add OSTYPE(freebsd4) for FreeBSD 4.X. 3453 DEVTOOLS: install.sh did not properly handle paths in the source 3454 file name argument. Noted by Kari Hurtta of the Finnish 3455 Meteorological Institute. 3456 DEVTOOLS: Add FAST_PID_RECYCLE to compile time options for OpenBSD 3457 since it generates random process ids. 3458 PRALIASES: Add back adaptive algorithm to deal with different endings 3459 of entries in the database (with/without trailing '\0'). 3460 Patch from John Beck of Sun Microsystems. 3461 New Files: 3462 cf/ostype/freebsd4.m4 3463 34648.11.3/8.11.3 2001/02/27 3465 Prevent a segmentation fault when a bogus value was used in the 3466 LDAPDefaultSpec option's -r, -s, or -M flags and if a bogus 3467 option was used. Problem noted by Allan E Johannesen of 3468 Worcester Polytechnic Institute. 3469 Prevent "token too long" message by shortening {currHeader} which 3470 could be too long if the last copied character was a quote. 3471 Problem detected by Jan Krueger of digitalanswers 3472 communications consulting gmbh. 3473 Additional IPv6 check for unspecified addresses. Patch from 3474 Jun-ichiro itojun Hagino of the KAME Project. 3475 Do not ignore the ClientPortOptions setting if DaemonPortOptions 3476 Modifier=b (bind to same interface) is set and the 3477 connection came in from the command line. 3478 Do not bind to the loopback address if DaemonPortOptions 3479 Modifier=b (bind to same interface) is set. Patch from 3480 John Beck of Sun Microsystems. 3481 Properly deal with open failures on non-optional maps used in 3482 check_* rulesets by returning a temporary failure. 3483 Buffered file I/O files were not being properly fsync'ed to disk 3484 when they were committed. 3485 Properly encode '=' for the AUTH= parameter of the MAIL command. 3486 Problem noted by Hadmut Danisch. 3487 Under certain circumstances the macro {server_name} could be set 3488 to the wrong hostname (of a previous connection), which may 3489 cause some rulesets to return wrong results. This would 3490 usually cause mail to be queued up and delivered later on. 3491 Ignore F=z (LMTP) mailer flag if $u is given in the mailer A= 3492 equate. Problem noted by Motonori Nakamura of Kyoto 3493 University. 3494 Work around broken accept() implementations which only partially 3495 fill in the peer address if the socket is closed before 3496 accept() completes. 3497 Return an SMTP "421" temporary failure if the data file can't be 3498 opened where the "354" reply would normally be given. 3499 Prevent a CPU loop in trying to expand a macro which doesn't exist 3500 in a queue run. Problem noted by Gordon Lack of Glaxo 3501 Wellcome. 3502 If delivering via a program and that program exits with EX_TEMPFAIL, 3503 note that fact for the mailq display instead of just showing 3504 "Deferred". Problem noted by Motonori Nakamura of Kyoto 3505 University. 3506 If doing canonification via /etc/hosts, try both the fully 3507 qualified hostname as well as the first portion of the 3508 hostname. Problem noted by David Bremner of the 3509 University of New Brunswick. 3510 Portability: 3511 Fix a compilation problem for mail.local and rmail if SFIO 3512 is in use. Problem noted by Auteria Wally 3513 Winzer Jr. of Champion Nutrition. 3514 IPv6 changes for platforms using KAME. Patch from 3515 Jun-ichiro itojun Hagino of the KAME Project. 3516 OpenBSD 2.7 and higher has srandomdev(3). OpenBSD 2.8 and 3517 higher has BSDI-style login classes. Patch from 3518 Todd C. Miller of Courtesan Consulting. 3519 Unixware 7.1.1 doesn't allow h_errno to be set directly if 3520 sendmail is being compiled with -kthread. Problem 3521 noted by Orion Poplawski of CQG, Inc. 3522 CONTRIB: buildvirtuser: Substitute current domain for $DOMAIN and 3523 current left hand side for $LHS in virtuser files. 3524 DEVTOOLS: Do not pass make targets to recursive Build invocations. 3525 Problem noted by Jeff Bronson of J.D. Bronson, Inc. 3526 MAIL.LOCAL: In LMTP mode, do not return errors regarding problems 3527 storing the temporary message file until after the remote 3528 side has sent the final DATA termination dot. Problem 3529 noted by Allan E Johannesen of Worcester Polytechnic 3530 Institute. 3531 MAIL.LOCAL: If LMTP mode is set, give a temporary error if users 3532 are also specified on the command line. Patch from 3533 Motonori Nakamura of Kyoto University. 3534 PRALIASES: Skip over AliasFile specifications which aren't based on 3535 database files (i.e., only show dbm, hash, and btree). 3536 Renamed Files: 3537 devtools/OS/OSF1.V5.0 => devtools/OS/OSF1.V5.x 3538 35398.11.2/8.11.2 2000/12/29 3540 Prevent a segmentation fault when trying to set a class in 3541 address test mode due to a negative array index. Audit 3542 other array indexing. This bug is not believed to be 3543 exploitable. Noted by Michal Zalewski of the "Internet for 3544 Schools" project (IdS). 3545 Add an FFR (for future release) to drop privileges when using 3546 address test mode. This will be turned on in 8.12. It can 3547 be enabled by compiling with: 3548 APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_TESTMODE_DROP_PRIVS') 3549 in your devtools/Site/site.config.m4 file. Suggested by 3550 Michal Zalewski of the "Internet for Schools" project (IdS). 3551 Fix potential problem with Cyrus-SASL security layer which may have 3552 caused I/O errors, especially for mechanism DIGEST-MD5. 3553 When QueueSortOrder was set to host, sendmail might not read 3554 enough of the queue file to determine the host, making the 3555 sort sub-optimal. Problem noted by Jeff Earickson of 3556 Colby College. 3557 Don't issue DSNs for addresses which use the NOTIFY parameter (per 3558 RFC 1891) but don't have FAILURE as value. 3559 Initialize Cyrus-SASL library before the SMTP daemon is started. 3560 This implies that every change to SASL related files requires 3561 a restart of the daemon, e.g., Sendmail.conf, new SASL 3562 mechanisms (in form of shared libraries). 3563 Properly set the STARTTLS related macros during a queue run for 3564 a cached connection. Bug reported by Michael Kellen of 3565 NxNetworks, Inc. 3566 Log the server name in relay= for ruleset tls_server instead of the 3567 client name. 3568 Include original length of bad field/header when reporting 3569 MaxMimeHeaderLength problems. Requested by Ulrich Windl of 3570 the Universitat Regensburg. 3571 Fix delivery to set-user-ID files that are expanded from aliases in 3572 DeliveryMode queue. Problem noted by Ric Anderson of the 3573 University of Arizona. 3574 Fix LDAP map -m (match only) flag. Problem noted by Jeff Giuliano 3575 of Collective Technologies. 3576 Avoid using a negative argument for sleep() calls when delaying answers 3577 to EXPN/VRFY commands on systems which respond very slowly. 3578 Problem noted by Mikolaj J. Habryn of Optus Internet 3579 Engineering. 3580 Make sure the F=u flag is set in the default prog mailer 3581 definition. Problem noted by Kari Hurtta of the Finnish 3582 Meteorological Institute. 3583 Fix IPv6 check for unspecified addresses. Patch from 3584 Jun-ichiro itojun Hagino of the KAME Project. 3585 Fix return values for IRIX nsd map. From Kari Hurtta of the Finnish 3586 Meteorological Institute. 3587 Fix parsing of DaemonPortOptions and ClientPortOptions. Read all 3588 of the parameters to find Family= setting before trying to 3589 interpret Addr= and Port=. Problem noted by Valdis 3590 Kletnieks of Virginia Tech. 3591 When delivering to a file directly from an alias, do not call 3592 initgroups(); instead use the DefaultUser group information. 3593 Problem noted by Marc Schaefer of ALPHANET NF. 3594 RunAsUser now overrides the ownership of the control socket, if 3595 created. Otherwise, sendmail can not remove it upon 3596 close. Problem noted by Werner Wiethege. 3597 Fix ConnectionRateThrottle counting as the option is the number of 3598 overall connections, not the number of connections per 3599 socket. A future version may change this to per socket 3600 counting. 3601 Portability: 3602 Clean up libsmdb so it functions properly on platforms 3603 where sizeof(u_int32_t) != sizeof(size_t). Problem 3604 noted by Rein Tollevik of Basefarm AS. 3605 Fix man page formatting for compatibility with Solaris' 3606 whatis. From Stephen Gildea of InTouch Systems, Inc. 3607 UnixWare 7 includes snprintf() support. From Larry 3608 Rosenman. 3609 IPv6 changes for platforms using KAME. Patch from 3610 Jun-ichiro itojun Hagino of the KAME Project. 3611 Avoid a typedef compile conflict with Berkeley DB 3.X and 3612 Solaris 2.5 or earlier. Problem noted by Bob Hughes 3613 of Pacific Access. 3614 Add preliminary support for AIX 5. Contributed by 3615 Valdis Kletnieks of Virginia Tech. 3616 Solaris 9 load average support from Andrew Tucker of Sun 3617 Microsystems. 3618 CONFIG: Reject addresses of the form a!b if FEATURE(`nouucp', `r') 3619 is used. Problem noted by Phil Homewood of Asia Online, 3620 patch from Neil Rickert of Northern Illinois University. 3621 CONFIG: Change the default DNS based blocklist server for 3622 FEATURE(`dnsbl') to blackholes.mail-abuse.org. 3623 CONFIG: Deal correctly with the 'C' flag in {daemon_flags}, i.e., 3624 implicitly assume canonical host names. 3625 CONFIG: Deal with "::" in IPv6 addresses for access_db. Based on 3626 patch by Motonori Nakamura of Kyoto University. 3627 CONFIG: New OSTYPE(`aix5') contributed by Valdis Kletnieks of 3628 Virginia Tech. 3629 CONFIG: Pass the illegal header form <list:;> through untouched 3630 instead of making it worse. Problem noted by Motonori 3631 Nakamura of Kyoto University. 3632 CONTRIB: Added buildvirtuser (see `perldoc contrib/buildvirtuser`). 3633 CONTRIB: qtool.pl: An empty queue is not an error. Problem noted 3634 by Jan Krueger of digitalanswers communications consulting 3635 gmbh. 3636 CONTRIB: domainmap.m4: Handle domains with '-' in them. From Mark 3637 Roth of the University of Illinois at Urbana-Champaign. 3638 DEVTOOLS: Change the internal devtools OS, REL, and ARCH m4 3639 variables into bldOS, bldREL, and bldARCH to prevent 3640 namespace collisions. Problem noted by Motonori Nakamura 3641 of Kyoto University. 3642 RMAIL: Undo the 8.11.1 change to use -G when calling sendmail. It 3643 causes some changes in behavior and may break rmail for 3644 installations where sendmail is actually a wrapper to 3645 another MTA. The change will re-appear in a future 3646 version. 3647 SMRSH: Use the vendor supplied directory on HPUX 10.X, HPUX 11.X, 3648 and SunOS 5.8. Requested by Jeff A. Earickson of Colby 3649 College and John Beck of Sun Microsystems. 3650 VACATION: Fix pattern matching for addresses to ignore. 3651 VACATION: Don't reply to addresses of the form owner-* 3652 or *-owner. 3653 New Files: 3654 cf/ostype/aix5.m4 3655 contrib/buildvirtuser 3656 devtools/OS/AIX.5.0 3657 36588.11.1/8.11.1 2000/09/27 3659 Fix SMTP EXPN command output if the address expands to a single 3660 name. Fix from John Beck of Sun Microsystems. 3661 Don't try STARTTLS in the client if the PRNG has not been properly 3662 seeded. This problem only occurs on systems without 3663 /dev/urandom. Problem detected by Jan Krueger of 3664 digitalanswers communications consulting gmbh and 3665 Neil Rickert of Northern Illinois University. 3666 Don't use the . and .. directories when expanding QueueDirectory 3667 wildcards. 3668 Do not try to cache LDAP connections across processes as a parent 3669 process may close the connection before the child process 3670 has completed. Problem noted by Lai Yiu Fai of the Hong 3671 Kong University of Science and Technology and Wolfgang 3672 Hottgenroth of UUNET. 3673 Use Timeout.fileopen to limit the amount of time spent trying to 3674 read the LDAP secret from a file. 3675 Prevent SIGTERM from removing a command line submitted item after 3676 the user submits the message and before the first delivery 3677 attempt completes. Problem noted by Max France of AlphaNet. 3678 Fix from Neil Rickert of Northern Illinois University. 3679 Deal correctly with MaxMessageSize restriction if message size is 3680 greater than 2^31. Problem noted by Tim "Darth Dice" Bosserman 3681 of EarthLink. 3682 Turn off queue checkpointing if CheckpointInterval is set to zero. 3683 Treat an empty home directory (from getpw*() or $HOME) as 3684 non-existent instead of treating it as /. Problem noted by 3685 Todd C. Miller of Courtesan Consulting. 3686 Don't drop duplicate headers when reading a queued item. Problem 3687 noted by Motonori Nakamura of Kyoto University. 3688 Avoid bogus error text when logging the savemail panic "cannot 3689 save rejected email anywhere". Problem noted by Marc G. 3690 Fournier of Acadia University. 3691 If an LDAP search fails because the LDAP server went down, close 3692 the map so subsequent searches reopen the map. If there are 3693 multiple LDAP servers, the down server will be skipped and 3694 one of the others may be able to take over. 3695 Set the ${load_avg} macro to the current load average, not the 3696 previous load average query result. 3697 If a non-optional map used in a check_* ruleset can't be opened, 3698 return a temporary failure to the remote SMTP client 3699 instead of ignoring the map. Problem noted by Allan E 3700 Johannesen of Worcester Polytechnic Institute. 3701 Avoid a race condition when queuing up split envelopes by saving 3702 the split envelopes before the original envelope. 3703 Fix a bug in the PH_MAP code which caused mail to bounce instead of 3704 defer if the PH server could not be contacted. From Mark 3705 Roth of the University of Illinois at Urbana-Champaign. 3706 Prevent QueueSortOrder=Filename from interfering with -qR, -qS, and 3707 ETRN. Problem noted by Erik R. Leo of SoVerNet. 3708 Change error code for unrecognized parameters to the SMTP MAIL and 3709 RCPT commands from 501 to 555 per RFC 1869. Problem 3710 reported to Postfix by Robert Norris of Monash University. 3711 Prevent overwriting the argument of -B on certain OS. Problem 3712 noted by Matteo Gelosa of I.NET S.p.A. 3713 Use the proper routine for freeing memory with Netscape's LDAP 3714 client libraries. Patch from Paul Hilchey of the 3715 University of British Columbia. 3716 Portability: 3717 Move the NETINET6 define to devtools/OS/SunOS.5.{8,9} 3718 instead of defining it in conf.h so users can 3719 override the setting. Suggested by 3720 Henrik Nordstrom of Ericsson. 3721 On HP-UX 10.X and 11.X, use /usr/sbin/sendmail instead of 3722 /usr/lib/sendmail for rmail and vacation. From 3723 Jeff A. Earickson of Colby College. 3724 On HP-UX 11.X, use /usr/sbin instead of /usr/libexec (which 3725 does not exist). From Jeff A. Earickson of Colby 3726 College. 3727 Avoid using the UCB subsystem on NCR MP-RAS 3.x. From 3728 Tom Moore of NCR. 3729 NeXT 3.X and 4.X installs man pages in /usr/man. From 3730 Hisanori Gogota of NTT/InterCommunicationCenter. 3731 Solaris 8 and later include /var/run. The default PID file 3732 location is now /var/run/sendmail.pid. From John 3733 Beck of Sun Microsystems. 3734 SFIO includes snprintf() for those operating systems 3735 which do not. From Todd C. Miller of Courtesan 3736 Consulting. 3737 CONFIG: Use the result of _CERT_REGEX_SUBJECT_ not {cert_subject}. 3738 Problem noted by Kaspar Brand of futureLab AG. 3739 CONFIG: Change 553 SMTP reply code to 501 to avoid problems with 3740 errors in the MAIL address. 3741 CONFIG: Fix FEATURE(nouucp) usage in example .mc files. Problem 3742 noted by Ron Jarrell of Virginia Tech. 3743 CONFIG: Add support for Solaris 8 (and later) as OSTYPE(solaris8). 3744 Contributed by John Beck of Sun Microsystems. 3745 CONFIG: Set confFROM_HEADER such that the mail hub can possibly add 3746 GECOS information for an address. This more closely 3747 matches pre-8.10 nullclient behavior. From Per Hedeland of 3748 Ericsson. 3749 CONFIG: Fix MODIFY_MAILER_FLAGS(): apply the flag modifications for 3750 SMTP to all *smtp* mailers and those for RELAY to the relay 3751 mailer as described in cf/README. 3752 MAIL.LOCAL: Open the mailbox as the recipient not root so quotas 3753 are obeyed. Problem noted by Damian Kuczynski of NIK. 3754 MAKEMAP: Do not change a map's owner to the TrustedUser if using 3755 makemap to 'unmake' the map. 3756 RMAIL: Avoid overflowing the list of recipients being passed to 3757 sendmail. 3758 RMAIL: Invoke sendmail with '-G' to indicate this is a gateway 3759 submission. Problem noted by Kari Hurtta of the Finnish 3760 Meteorological Institute. 3761 VACATION: Read the complete message to avoid "broken pipe" signals. 3762 VACATION: Do not cut off vacation.msg files which have a single 3763 dot as the only character on the line. 3764 New Files: 3765 cf/ostype/solaris8.m4 3766 37678.11.0/8.11.0 2000/07/19 3768 SECURITY: If sendmail is installed as a non-root set-user-ID binary 3769 (not the normal case), some operating systems will still 3770 keep a saved-uid of the effective-uid when sendmail tries 3771 to drop all of its privileges. If sendmail needs to drop 3772 these privileges and the operating system doesn't set the 3773 saved-uid as well, exit with an error. Problem noted by 3774 Kari Hurtta of the Finnish Meteorological Institute. 3775 SECURITY: sendmail depends on snprintf() NUL terminating the string 3776 it populates. It is possible that some broken 3777 implementations of snprintf() exist that do not do this. 3778 Systems in this category should compile with 3779 -DSNPRINTF_IS_BROKEN=1. Use test/t_snprintf.c to test your 3780 system and report broken implementations to 3781 sendmail-bugs@sendmail.org and your OS vendor. Problem 3782 noted by Slawomir Piotrowski of TELSAT GP. 3783 Support SMTP Service Extension for Secure SMTP (RFC 2487) (STARTTLS). 3784 Implementation influenced by the example programs of 3785 OpenSSL and the work of Lutz Jaenicke of TU Cottbus. 3786 Add new STARTTLS related options CACERTPath, CACERTFile, 3787 ClientCertFile, ClientKeyFile, DHParameters, RandFile, 3788 ServerCertFile, and ServerKeyFile. These are documented in 3789 cf/README and doc/op/op.me. 3790 New STARTTLS related macros: ${cert_issuer}, ${cert_subject}, 3791 ${tls_version}, ${cipher}, ${cipher_bits}, ${verify}, 3792 ${server_name}, and ${server_addr}. These are documented 3793 in cf/README and doc/op/op.me. 3794 Add support for the Entropy Gathering Daemon (EGD) for better 3795 random data. 3796 New DontBlameSendmail option InsufficientEntropy for systems which 3797 don't properly seed the PRNG for OpenSSL but want to 3798 try to use STARTTLS despite the security problems. 3799 Support the security layer in SMTP AUTH for mechanisms which 3800 support encryption. Based on code contributed by Tim 3801 Martin of CMU. 3802 Add new macro ${auth_ssf} to reflect the SMTP AUTH security 3803 strength factor. 3804 LDAP's -1 (single match only) flag was not honored if the -z 3805 (delimiter) flag was not given. Problem noted by ST Wong of 3806 the Chinese University of Hong Kong. Fix from Mark Adamson 3807 of CMU. 3808 Add more protection from accidentally tripping OpenLDAP 1.X's 3809 ld_errno == LDAP_DECODING_ERROR hack on ldap_next_attribute(). 3810 Suggested by Kurt Zeilenga of OpenLDAP. 3811 Fix the default family selection for DaemonPortOptions. As 3812 documented, unless a family is specified in a 3813 DaemonPortOptions option, "inet" is the default. It is 3814 also the default if no DaemonPortOptions value is set. 3815 Therefore, IPv6 users should configure additional sockets 3816 by adding DaemonPortOptions settings with Family=inet6 if 3817 they wish to also listen on IPv6 interfaces. Problem noted 3818 by Jun-ichiro itojun Hagino of the KAME Project. 3819 Set ${if_family} when setting ${if_addr} and ${if_name} to reflect 3820 the interface information for an outgoing connection. 3821 Not doing so was creating a mismatch between the socket 3822 family and address used in subsequent connections if the 3823 M=b modifier was set in DaemonPortOptions. Problem noted 3824 by John Beck of Sun Microsystems. 3825 If DaemonPortOptions modifier M=b is used, determine the socket 3826 family based on the IP address. ${if_family} is no longer 3827 persistent (i.e., saved in qf files). Patch from John Beck 3828 of Sun Microsystems. 3829 sendmail 8.10 and 8.11 reused the ${if_addr} and ${if_family} 3830 macros for both the incoming interface address/family and 3831 the outgoing interface address/family. In order for M=b 3832 modifier in DaemonPortOptions to work properly, preserve 3833 the incoming information in the queue file for later 3834 delivery attempts. 3835 Use SMTP error code and enhanced status code from check_relay in 3836 responses to commands. Problem noted by Jeff Wasilko of 3837 smoe.org. 3838 Add more vigilance in checking for putc() errors on output streams 3839 to protect from a bug in Solaris 2.6's putc(). Problem 3840 noted by Graeme Hewson of Oracle. 3841 The LDAP map -n option (return attribute names only) wasn't working. 3842 Problem noted by Ajay Matia. 3843 Under certain circumstances, an address could be listed as deferred 3844 but would be bounced back to the sender as failed to be 3845 delivered when it really should have been queued. Problem 3846 noted by Allan E Johannesen of Worcester Polytechnic Institute. 3847 Prevent a segmentation fault in a child SMTP process from getting 3848 the SMTP transaction out of sync. Problem noted by Per 3849 Hedeland of Ericsson. 3850 Turn off RES_DEBUG if SFIO is defined unless SFIO_STDIO_COMPAT 3851 is defined to avoid a core dump due to incompatibilities 3852 between sfio and stdio. Problem noted by Neil Rickert 3853 of Northern Illinois University. 3854 Don't log useless envelope ID on initial connection log. Problem 3855 noted by Kari Hurtta of the Finnish Meteorological Institute. 3856 Convert the free disk space shown in a control socket status query 3857 to kilobyte units. 3858 If TryNullMXList is True and there is a temporary DNS failure 3859 looking up the hostname, requeue the message for a later 3860 attempt. Problem noted by Ari Heikkinen of Pohjois-Savo 3861 Polytechnic. 3862 Under the proper circumstances, failed connections would be recorded 3863 as "Bad file number" instead of "Connection failed" in the 3864 queue file and persistent host status. Problem noted by 3865 Graeme Hewson of Oracle. 3866 Avoid getting into an endless loop if a non-hoststat directory exists 3867 within the hoststatus directory (e.g., lost+found). 3868 Patch from Valdis Kletnieks of Virginia Tech. 3869 Make sure Timeout.queuereturn=now returns a bounce message to the 3870 sender. Problem noted by Per Hedeland of Ericsson. 3871 If a message data file can't be opened at delivery time, panic and 3872 abort the attempt instead of delivering a message that 3873 states "<<< No Message Collected >>>". 3874 Fixup the GID checking code from 8.10.2 as it was overly 3875 restrictive. Problem noted by Mark G. Thomas of Mark 3876 G. Thomas Consulting. 3877 Preserve source port number instead of replacing it with the ident 3878 port number (113). 3879 Document the queue status characters in the mailq man page. 3880 Suggested by Ulrich Windl of the Universitat Regensburg. 3881 Process queued items in which none of the recipient addresses have 3882 host portions (or there are no recipients). Problem noted 3883 by Valdis Kletnieks of Virginia Tech. 3884 If a cached LDAP connection is used for multiple maps, make sure 3885 only the first to open the connection is allowed to close 3886 it so a later map close doesn't break the connection for 3887 other maps. Problem noted by Wolfgang Hottgenroth of UUNET. 3888 Netscape's LDAP libraries do not support Kerberos V4 3889 authentication. Patch from Rainer Schoepf of the 3890 University of Mainz. 3891 Provide workaround for inconsistent handling of data passed 3892 via callbacks to Cyrus SASL prior to version 1.5.23. 3893 Mention ENHANCEDSTATUSCODES in the SMTP HELP helpfile. Omission 3894 noted by Ulrich Windl of the Universitat Regensburg. 3895 Portability: 3896 Add the ability to read IPv6 interface addresses into class 3897 'w' under FreeBSD (and possibly others). From Jun 3898 Kuriyama of IMG SRC, Inc. and the FreeBSD Project. 3899 Replace code for finding the number of CPUs on HPUX. 3900 NCRUNIX MP-RAS 3.02 SO_REUSEADDR socket option does not 3901 work properly causing problems if the accept() 3902 fails and the socket needs to be reopened. Patch 3903 from Tom Moore of NCR. 3904 NetBSD uses a .0 extension of formatted man pages. From 3905 Andrew Brown of Crossbar Security. 3906 Return to using the IPv6 AI_DEFAULT flag instead of AI_V4MAPPED 3907 for calls to getipnodebyname(). The Linux 3908 implementation is broken so AI_ADDRCONFIG is stripped 3909 under Linux. From John Beck of Sun Microsystems and 3910 John Kennedy of Cal State University, Chico. 3911 CONFIG: Catch invalid addresses containing a ',' at the wrong place. 3912 Patch from Neil Rickert of Northern Illinois University. 3913 CONFIG: New variables for the new sendmail options: 3914 confCACERT_PATH CACERTPath 3915 confCACERT CACERTFile 3916 confCLIENT_CERT ClientCertFile 3917 confCLIENT_KEY ClientKeyFile 3918 confDH_PARAMETERS DHParameters 3919 confRAND_FILE RandFile 3920 confSERVER_CERT ServerCertFile 3921 confSERVER_KEY ServerKeyFile 3922 CONFIG: Provide basic rulesets for TLS policy control and add new 3923 tags to the access database to support these policies. See 3924 cf/README for more information. 3925 CONFIG: Add TLS information to the Received: header. 3926 CONFIG: Call tls_client ruleset from check_mail in case it wasn't 3927 called due to a STARTTLS command. 3928 CONFIG: If TLS_PERM_ERR is defined, TLS related errors are permanent 3929 instead of temporary. 3930 CONFIG: FEATURE(`relay_hosts_only') didn't work in combination with 3931 the access map and relaying to a domain without using a To: 3932 tag. Problem noted by Mark G. Thomas of Mark G. Thomas 3933 Consulting. 3934 CONFIG: Set confEBINDIR to /usr/sbin to match the devtools entry in 3935 OSTYPE(`linux') and OSTYPE(`mklinux'). From Tim Pierce of 3936 RootsWeb.com. 3937 CONFIG: Make sure FEATURE(`nullclient') doesn't use aliasing and 3938 forwarding to make it as close to the old behavior as 3939 possible. Problem noted by George W. Baltz of the 3940 University of Maryland. 3941 CONFIG: Added OSTYPE(`darwin') for Mac OS X and Darwin users. From 3942 Wilfredo Sanchez of Apple Computer, Inc. 3943 CONFIG: Changed the map names used by FEATURE(`ldap_routing') from 3944 ldap_mailhost and ldap_mailroutingaddress to ldapmh and 3945 ldapmra as underscores in map names cause problems if 3946 underscore is in OperatorChars. Problem noted by Bob Zeitz 3947 of the University of Alberta. 3948 CONFIG: Apply blacklist_recipients also to hosts in class {w}. 3949 Patch from Michael Tratz of Esosoft Corporation. 3950 CONFIG: Use A=TCP ... instead of A=IPC ... in SMTP mailers. 3951 CONTRIB: Add link_hash.sh to create symbolic links to the hash 3952 of X.509 certificates. 3953 CONTRIB: passwd-to-alias.pl: More protection from special characters; 3954 treat special shells as root aliases; skip entries where the 3955 GECOS full name and username match. From Ulrich Windl of the 3956 Universitat Regensburg. 3957 CONTRIB: qtool.pl: Add missing last_modified_time method and fix a 3958 typo. Patch from Graeme Hewson of Oracle. 3959 CONTRIB: re-mqueue.pl: Improve handling of a race between re-mqueue 3960 and sendmail. Patch from Graeme Hewson of Oracle. 3961 CONTRIB: re-mqueue.pl: Don't exit(0) at end so can be called as 3962 subroutine Patch from Graeme Hewson of Oracle. 3963 CONTRIB: Add movemail.pl (move old mail messages between queues by 3964 calling re-mqueue.pl) and movemail.conf (configuration 3965 script for movemail.pl). From Graeme Hewson of Oracle. 3966 CONTRIB: Add cidrexpand (expands CIDR blocks as a preprocessor to 3967 makemap). From Derek J. Balling of Yahoo,Inc. 3968 DEVTOOLS: INSTALL_RAWMAN installation option mistakenly applied any 3969 extension modifications (e.g., MAN8EXT) to the installation 3970 target. Patch from James Ralston of Carnegie Mellon 3971 University. 3972 DEVTOOLS: Add support for SunOS 5.9. 3973 DEVTOOLS: New option confLN contains the command used to create 3974 links. 3975 LIBSMDB: Berkeley DB 2.X and 3.X errors might be lost and not 3976 reported. 3977 MAIL.LOCAL: DG/UX portability. Problem noted by Tim Boyer of 3978 Denman Tire Corporation. 3979 MAIL.LOCAL: Prevent a possible DoS attack when compiled with 3980 -DCONTENTLENGTH. Based on patch from 3APA3A@SECURITY.NNOV.RU. 3981 MAILSTATS: Fix usage statement (-p and -o are optional). 3982 MAKEMAP: Change man page layout as workaround for problem with nroff 3983 and -man on Solaris 7. Patch from Larry Williamson. 3984 RMAIL: AIX 4.3 has snprintf(). Problem noted by David Hayes of 3985 Black Diamond Equipment, Limited. 3986 RMAIL: Prevent a segmentation fault if the incoming message does not 3987 have a From line. 3988 VACATION: Read all of the headers before deciding whether or not 3989 to respond instead of stopping after finding recipient. 3990 Added Files: 3991 cf/ostype/darwin.m4 3992 contrib/cidrexpand 3993 contrib/link_hash.sh 3994 contrib/movemail.conf 3995 contrib/movemail.pl 3996 devtools/OS/SunOS.5.9 3997 test/t_snprintf.c 3998 39998.10.2/8.10.2 2000/06/07 4000 SECURITY: Work around broken Linux setuid() implementation. 4001 On Linux, a normal user process has the ability to subvert 4002 the setuid() call such that it is impossible for a root 4003 process to drop its privileges. Problem noted by Wojciech 4004 Purczynski of elzabsoft.pl. 4005 SECURITY: Add more vigilance around set*uid(), setgid(), setgroups(), 4006 initgroups(), and chroot() calls. 4007 Added Files: 4008 test/t_setuid.c 4009 40108.10.1/8.10.1 2000/04/06 4011 SECURITY: Limit the choice of outgoing (client-side) SMTP 4012 Authentication mechanisms to those specified in 4013 AuthMechanisms to prevent information leakage. We do not 4014 recommend use of PLAIN for outgoing mail as it sends the 4015 password in clear text to possibly untrusted servers. See 4016 cf/README's DefaultAuthInfo section for additional information. 4017 Copy the ident argument for openlog() to avoid problems on some 4018 OSs. Based on patch from Rob Bajorek from Webhelp.com. 4019 Avoid bogus error message when reporting an alias line as too long. 4020 Avoid bogus socket error message if sendmail.cf version level is 4021 greater than sendmail binary supported version. Patch 4022 from John Beck of Sun Microsystems. 4023 Prevent a malformed ruleset (missing right hand side) from causing 4024 a segmentation fault when using address test mode. Based on 4025 patch from John Beck of Sun Microsystems. 4026 Prevent memory leak from use of NIS maps and yp_match(3). Problem 4027 noted by Gil Kloepfer of the University of Texas at Austin. 4028 Fix queue file permission checks to allow for TrustedUser ownership. 4029 Change logging of errors from the trust_auth ruleset to LogLevel 10 4030 or higher. 4031 Avoid simple password cracking attacks against SMTP AUTH by using 4032 exponential delay after too many tries within one connection. 4033 Encode an initial empty AUTH challenge as '=', not as empty string. 4034 Avoid segmentation fault on EX_SOFTWARE internal error logs. 4035 Problem noted by Allan E Johannesen of Worcester 4036 Polytechnic Institute. 4037 Ensure that a header check which resolves to $#discard actually 4038 discards the message. 4039 Emit missing value warnings for aliases with no right hand side 4040 when newaliases is run instead of only when delivery is 4041 attempted to the alias. 4042 Remove AuthOptions missing value warning for consistency with other 4043 flag options. 4044 Portability: 4045 SECURITY: Specify a run-time shared library search path for 4046 AIX 4.X instead of using the dangerous AIX 4.X 4047 linker semantics. AIX 4.X users should consult 4048 sendmail/README for further information. Problem 4049 noted by Valdis Kletnieks of Virginia Tech. 4050 Avoid use of strerror(3) call. Problem noted by Charles 4051 Levert of Ecole Polytechnique de Montreal. 4052 DGUX requires -lsocket -lnsl and has a non-standard install 4053 program. From Tim Boyer of Denman Tire Corporation. 4054 HPUX 11.0 has a broken res_search() function. 4055 Updates to devtools/OS/NeXT.3.X, NeXT.4.X, and NEXTSTEP.4.X 4056 from J. P. McCann of E I A. 4057 Digital UNIX/Compaq Tru64 5.0 now includes snprintf(3). 4058 Problem noted by Michael Long of Info Avenue Internet 4059 Services, LLC. 4060 Modern (post-199912) OpenBSD versions include working 4061 strlc{at,py}(3) functions. From Todd C. Miller of 4062 Courtesan Consulting. 4063 SINIX doesn't have random(3). From Gerald Rinske of 4064 Siemens Business Services. 4065 CONFIG: Change error message about unresolvable sender domain to 4066 include the sender address. Proposed by Wolfgang Rupprecht 4067 of WSRCC. 4068 CONFIG: Fix usenet mailer calls. 4069 CONFIG: If RELAY_MAILER_FLAGS is not defined, use SMTP_MAILER_FLAGS 4070 to be backward compatible with 8.9. 4071 CONFIG: Change handling of default case @domain for virtusertable 4072 to allow for +*@domain to deal with +detail. 4073 CONTRIB: Remove converting.sun.configs -- it is obsolete. 4074 DEVTOOLS: confUBINMODE was being ignored. Fix from KITAZIMA, Tuneki 4075 of NEC. 4076 DEVTOOLS: Add to NCR platform list and include the architecture 4077 (i486). From Tom J. Moore of NCR. 4078 DEVTOOLS: SECURITY: Change method of linking with sendmail utility 4079 libraries to work around the AIX 4.X and SunOS 4.X linker's 4080 overloaded -L option. Problem noted by Valdis Kletnieks of 4081 Virginia Tech. 4082 DEVTOOLS: configure.sh was overriding the user's choice for 4083 confNROFF. Problem noted by Glenn A. Malling of Syracuse 4084 University. 4085 DEVTOOLS: New variables conf_prog_LIB_POST and confBLDVARIANT added 4086 for other internal projects but included in the open source 4087 release. 4088 LIBSMDB: Check for ".db" instead of simply "db" at the end of the 4089 map name to determine whether or not to add the extension. 4090 This fixes makemap when building the userdb file. Problem 4091 noted by Andrew J Cole of the University of Leeds. 4092 LIBSMDB: Allow a database to be opened for updating and created if 4093 it doesn't already exist. Problem noted by Rand Wacker of 4094 Sendmail. 4095 LIBSMDB: If type is SMDB_TYPE_DEFAULT and both NEWDB and NDBM are 4096 available, fall back to NDBM if NEWDB open fails. This 4097 fixes praliases. Patch from John Beck of Sun Microsystems. 4098 LIBSMUTIL: safefile()'s SFF_NOTEXCL check was being misinterpreted 4099 as SFF_NOWRFILES. 4100 OP.ME: Clarify some issues regarding mailer flags. Suggested by 4101 Martin Mokrejs of The Charles University and Neil Rickert of 4102 Northern Illinois University. 4103 PRALIASES: Restore 8.9.X functionality of being able to search for 4104 particular keys in a database by specifying the keys on the 4105 command line. Man page updated accordingly. Patch from 4106 John Beck of Sun Microsystems. 4107 VACATION: SunOS 4.X portability from Charles Levert of Ecole 4108 Polytechnique de Montreal. 4109 VACATION: Fix -t option which is ignored but available for 4110 compatibility with Sun's version, based on patch from 4111 Volker Dobler of Infratest Burke. 4112 Added Files: 4113 devtools/M4/UNIX/smlib.m4 4114 devtools/OS/OSF1.V5.0 4115 Deleted Files: 4116 contrib/converting.sun.configs 4117 Deleted Directories (already done in 8.10.0 but not listed): 4118 doc/intro 4119 doc/usenix 4120 doc/changes 4121 41228.10.0/8.10.0 2000/03/01 4123 ************************************************************* 4124 * The engineering department at Sendmail, Inc. has suffered * 4125 * the tragic loss of a key member of our engineering team. * 4126 * Julie Van Bourg was the Vice President of Engineering * 4127 * at Sendmail, Inc. during the development and deployment * 4128 * of this release. It was her vision, dedication, and * 4129 * support that has made this release a success. Julie died * 4130 * on October 26, 1999 of cancer. We have lost a leader, a * 4131 * coach, and a friend. * 4132 * * 4133 * This release is dedicated to her memory and to the joy, * 4134 * strength, ideals, and hope that she brought to all of us. * 4135 * Julie, we miss you! * 4136 ************************************************************* 4137 SECURITY: The safe file checks now back track through symbolic 4138 links to make sure the files can't be compromised due 4139 to poor permissions on the parent directories of the 4140 symbolic link target. 4141 SECURITY: Only root, TrustedUser, and users in class t can rebuild 4142 the alias map. Problem noted by Michal Zalewski of the 4143 "Internet for Schools" project (IdS). 4144 SECURITY: There is a potential for a denial of service attack if 4145 the AutoRebuildAliases option is set as a user can kill the 4146 sendmail process while it is rebuilding the aliases file 4147 (leaving it in an inconsistent state). This option and 4148 its use is deprecated and will be removed from a future 4149 version of sendmail. 4150 SECURITY: Make sure all file descriptors (besides stdin, stdout, and 4151 stderr) are closed before restarting sendmail. Problem noted 4152 by Michal Zalewski of the "Internet for Schools" project 4153 (IdS). 4154 Begin using /etc/mail/ for sendmail related files. This affects 4155 a large number of files. See cf/README for more details. 4156 The directory structure of the distribution has changed slightly 4157 for easier code sharing among the programs. 4158 Support SMTP AUTH (see RFC 2554). New macros for this purpose 4159 are ${auth_authen}, ${auth_type}, and ${auth_author} 4160 which hold the client's authentication credentials, 4161 the mechanism used for authentication, and the 4162 authorization identity (i.e., the AUTH= parameter if 4163 supplied). Based on code contributed by Tim Martin of CMU. 4164 On systems which use the Torek stdio library (all of the BSD 4165 distributions), use memory-buffered files to reduce 4166 file system overhead by not creating temporary files on 4167 disk. Contributed by Exactis.com, Inc. 4168 New option DataFileBufferSize to control the maximum size of a 4169 memory-buffered data (df) file before a disk-based file is 4170 used. Contributed by Exactis.com, Inc. 4171 New option XscriptFileBufferSize to control the maximum size of a 4172 memory-buffered transcript (xf) file before a disk-based 4173 file is used. Contributed by Exactis.com, Inc. 4174 sendmail implements RFC 2476 (Message Submission), e.g., it can 4175 now listen on several different ports. Use: 4176 O DaemonPortOptions=Name=MSA, Port=587, M=E 4177 to run a Message Submission Agent (MSA); this is turned 4178 on by default in m4-generated .cf files; it can be turned 4179 off with FEATURE(`no_default_msa'). 4180 The 'XUSR' SMTP command is deprecated. Mail user agents should 4181 begin using RFC 2476 Message Submission for initial user 4182 message submission. XUSR may disappear from a future release. 4183 The new '-G' (relay (gateway) submission) command line option 4184 indicates that the message being submitted from the command 4185 line is for relaying, not initial submission. This means 4186 the message will be rejected if the addresses are not fully 4187 qualified and no canonicalization will be done. Future 4188 releases may even reject improperly formed messages. 4189 The '-U' (initial user submission) command line option is 4190 deprecated and may be removed from a future release. 4191 Mail user agents should begin using '-G' to indicate that 4192 this is a relay submission (the inverse of -U). 4193 The next release of sendmail will assume that any message submitted 4194 from the command line is an initial user submission and act 4195 accordingly. 4196 If sendmail doesn't have enough privileges to run a .forward 4197 program or deliver to file as the owner of that file, the 4198 address is marked as unsafe. This means if RunAsUser is 4199 set, users won't be able to use programs or delivery to 4200 files in their .forward files. Administrators can override 4201 this by setting the DontBlameSendmail option to the new 4202 setting NonRootSafeAddr. 4203 Allow group or world writable directories if the sticky bit is set 4204 on the directory and DontBlameSendmail is set to 4205 TrustStickyBit. Based on patch from Chris Metcalf of 4206 InCert Software. 4207 Prevent logging of unsafe directory paths for non-existent forward 4208 files if the new DontWarnForwardFileInUnsafeDirPath bit is 4209 set in the DontBlameSendmail option. Requested by many. 4210 New Timeout.control option to limit the total time spent satisfying 4211 a control socket request. 4212 New Timeout.resolver options for controlling BIND resolver 4213 settings: 4214 Timeout.resolver.retrans 4215 Sets the resolver's retransmission time interval (in 4216 seconds). Sets both Timeout.resolver.retrans.first 4217 and Timeout.resolver.retrans.normal. 4218 Timeout.resolver.retrans.first 4219 Sets the resolver's retransmission time interval (in 4220 seconds) for the first attempt to deliver a message. 4221 Timeout.resolver.retrans.normal 4222 Sets the resolver's retransmission time interval (in 4223 seconds) for all resolver lookups except the first 4224 delivery attempt. 4225 Timeout.resolver.retry 4226 Sets the number of times to retransmit a resolver 4227 query. Sets both Timeout.resolver.retry.first 4228 and Timeout.resolver.retry.normal. 4229 Timeout.resolver.retry.first 4230 Sets the number of times to retransmit a resolver 4231 query for the first attempt to deliver a message. 4232 Timeout.resolver.retry.normal 4233 Sets the number of times to retransmit a resolver 4234 query for all resolver lookups except the first 4235 delivery attempt. 4236 Contributed by Exactis.com, Inc. 4237 Support multiple queue directories. To use multiple queues, supply 4238 a QueueDirectory option value ending with an asterisk. For 4239 example, /var/spool/mqueue/q* will use all of the 4240 directories or symbolic links to directories beginning with 4241 'q' in /var/spool/mqueue as queue directories. Keep in 4242 mind, the queue directory structure should not be changed 4243 while sendmail is running. Queue runs create a separate 4244 process for running each queue unless the verbose flag is 4245 given on a non-daemon queue run. New items are randomly 4246 assigned to a queue. Contributed by Exactis.com, Inc. 4247 Support different directories for qf, df, and xf queue files; if 4248 subdirectories or symbolic links to directories of those names 4249 exist in the queue directories, they are used for the 4250 corresponding queue files. Keep in mind, the queue 4251 directory structure should not be changed while sendmail is 4252 running. Proposed by Mathias Koerber of Singapore 4253 Telecommunications Ltd. 4254 New queue file naming system which uses a filename guaranteed to be 4255 unique for 60 years. This allows queue IDs to be assigned 4256 without fancy file system locking. Queued items can be 4257 moved between queues easily. Contributed by Exactis.com, 4258 Inc. 4259 Messages which are undeliverable due to temporary address failures 4260 (e.g., DNS failure) will now go to the FallBackMX host, if 4261 set. Contributed by Exactis.com, Inc. 4262 New command line option '-L tag' which sets the identifier used for 4263 syslog. Contributed by Exactis.com, Inc. 4264 QueueSortOrder=Filename will sort the queue by filename. This 4265 avoids opening and reading each queue file when preparing 4266 to run the queue. Contributed by Exactis.com, Inc. 4267 Shared memory counters and microtimers functionality has been 4268 donated by Exactis.com, Inc. 4269 The SCCS ID tags have been replaced with RCS ID tags. 4270 Allow trusted users (those on a T line or in $=t) to set the 4271 QueueDirectory (Q) option without an X-Authentication-Warning: 4272 being added. Suggested by Michael K. Sanders. 4273 IPv6 support based on patches from John Kennedy of Cal State 4274 University, Chico, Motonori Nakamura of Kyoto University, 4275 and John Beck of Sun Microsystems. 4276 In low-disk space situations, where sendmail would previously refuse 4277 connections, still accept them, but only allow ETRN commands. 4278 Suggested by Mathias Koerber of Singapore Telecommunications 4279 Ltd. 4280 The [IPC] builtin mailer now allows delivery to a UNIX domain socket 4281 on systems which support them. This can be used with LMTP 4282 local delivery agents which listen on a named socket. An 4283 example mailer might be: 4284 Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, 4285 S=10, R=20/40, T=DNS/RFC822/X-Unix, 4286 A=FILE /var/run/lmtpd 4287 Code contributed by Lyndon Nerenberg of Messaging Direct. 4288 The [TCP] builtin mailer name is now deprecated. Use [IPC] 4289 instead. 4290 The first mailer argument in the [IPC] mailer is now checked for a 4291 legitimate value. Possible values are TCP (for TCP/IP 4292 connections), IPC (which will be deprecated in a future 4293 version), and FILE (for UNIX domain socket delivery). 4294 PrivacyOptions=goaway no longer includes the noetrn and the noreceipts 4295 flags. 4296 PrivacyOptions=nobodyreturn instructs sendmail not to include the 4297 body of the original message on delivery status 4298 notifications. 4299 Don't announce DSN if PrivacyOptions=noreceipts is set. Problem noted 4300 by Dan Bernstein, fix from Robert Harker of Harker Systems. 4301 Accept the SMTP RSET command even when rejecting commands due to TCP 4302 Wrappers or the check_relay ruleset. Problem noted by 4303 Steve Schweinhart of America Online. 4304 Warn if OperatorChars is set multiple times. OperatorChars should 4305 not be set after rulesets are defined. Suggested by 4306 Mitchell Blank Jr of Exec-PC. 4307 Do not report temporary failure on delivery to files. In 4308 interactive delivery mode, this would result in two SMTP 4309 responses after the DATA command. Problem noted by 4310 Nik Conwell of Boston University. 4311 Check file close when mailing to files. Problem noted by Nik 4312 Conwell of Boston University. 4313 Avoid a segmentation fault when using the LDAP map. Patch from 4314 Curtis W. Hillegas of Princeton University. 4315 Always bind to the LDAP server regardless of whether you are using 4316 ldap_open() or ldap_init(). Fix from Raj Kunjithapadam of 4317 @Home Network. 4318 New ruleset trust_auth to determine whether a given AUTH= 4319 parameter of the MAIL command should be trusted. See SMTP 4320 AUTH, cf/README, and doc/op/op.ps. 4321 Allow new named config file rules check_vrfy, check_expn, and 4322 check_etrn for VRFY, EXPN, and ETRN commands, respectively, 4323 similar to check_rcpt etc. 4324 Introduce new macros ${rcpt_mailer}, ${rcpt_host}, ${rcpt_addr}, 4325 ${mail_mailer}, ${mail_host}, ${mail_addr} that hold 4326 the results of parsing the RCPT and MAIL arguments, i.e. 4327 the resolved triplet from $#mailer $@host $:addr. 4328 From Kari Hurtta of the Finnish Meteorological Institute. 4329 New macro ${client_resolve} which holds the result of the resolve 4330 call for ${client_name}: OK, FAIL, FORGED, TEMP. Proposed 4331 by Kari Hurtta of the Finnish Meteorological Institute. 4332 New macros ${dsn_notify}, ${dsn_envid}, and ${dsn_ret} that hold 4333 the corresponding DSN parameter values. Proposed by 4334 Mathias Herberts. 4335 New macro ${msg_size} which holds the value of the SIZE= parameter, 4336 i.e., usually the size of the message (in an ESMTP dialogue), 4337 before the message has been collected, thereafter it holds 4338 the message size as computed by sendmail (and can be used 4339 in check_compat). 4340 The macro ${deliveryMode} now specifies the current delivery mode 4341 sendmail is using instead of the value of the DeliveryMode 4342 option. 4343 New macro ${ntries} holds the number of delivery attempts. 4344 Drop explicit From: if same as what would be generated only if it is 4345 a local address. From Motonori Nakamura of Kyoto University. 4346 Write pid to file also if sendmail only processes the queue. 4347 Proposed by Roy J. Mongiovi of Georgia Tech. 4348 Log "low on disk space" only when necessary. 4349 New macro ${load_avg} can be used to check the current load average. 4350 Suggested by Scott Gifford of The Internet Ramp. 4351 Return-Receipt-To: header implies DSN request if option RrtImpliesDsn 4352 is set. 4353 Flag -S for maps to specify the character which is substituted 4354 for spaces (instead of the default given by O BlankSub). 4355 Flag -D for maps: perform no lookup in deferred delivery mode. 4356 This flag is set by default for the host map. Based on a 4357 proposal from Ian MacPhedran of the University of Saskatchewan. 4358 Open maps only on demand, not at startup. 4359 Log warning about unsupported IP address families. 4360 New option MaxHeadersLength allows to specify a maximum length 4361 of the sum of all headers. This can be used to prevent 4362 a denial-of-service attack. 4363 New option MaxMimeHeaderLength which limits the size of MIME 4364 headers and parameters within those headers. This option 4365 is intended to protect mail user agents from buffer 4366 overflow attacks. 4367 Added option MaxAliasRecursion to specify the maximum depth of 4368 alias recursion. 4369 New flag F=6 for mailers to strip headers to seven bit. 4370 Map type syslog to log the key via syslogd. 4371 Entries in the alias file can be continued by putting a backslash 4372 directly before the newline. 4373 New option DeadLetterDrop to define the location of the system-wide 4374 dead.letter file, formerly hardcoded to 4375 /usr/tmp/dead.letter. If this option is not set (the 4376 default), sendmail will not attempt to save to a 4377 system-wide dead.letter file if it can not bounce the mail 4378 to the user nor postmaster. Instead, it will rename the qf 4379 file as it has in the past when the dead.letter file 4380 could not be opened. 4381 New option PidFile to define the location of the pid file. The 4382 value of this option is macro expanded. 4383 New option ProcessTitlePrefix specifies a prefix string for the 4384 process title shown in 'ps' listings. 4385 New macros for use with the PidFile and ProcessTitlePrefix options 4386 (along with the already existing macros): 4387 ${daemon_info} Daemon information, e.g. 4388 SMTP+queueing@00:30:00 4389 ${daemon_addr} Daemon address, e.g., 0.0.0.0 4390 ${daemon_family} Daemon family, e.g., inet, inet6, etc. 4391 ${daemon_name} Daemon name, e.g., MSA. 4392 ${daemon_port} Daemon port, e.g., 25 4393 ${queue_interval} Queue run interval, e.g., 00:30:00 4394 New macros especially for virtual hosting: 4395 ${if_name} hostname of interface of incoming connection. 4396 ${if_addr} address of interface of incoming connection. 4397 The latter is only set if the interface does not belong to the 4398 loopback net. 4399 If a message being accepted via a method other than SMTP and 4400 would be rejected by a header check, do not send the message. 4401 Suggested by Phil Homewood of Mincom Pty Ltd. 4402 Don't strip comments for header checks if $>+ is used instead of $>. 4403 Provide header value as quoted string in the macro 4404 ${currHeader} (possibly truncated to MAXNAME). Suggested by 4405 Jan Krueger of Unix-AG of University of Hannover. 4406 The length of the header value is stored in ${hdrlen}. 4407 H*: allows to specify a default ruleset for header checks. This 4408 ruleset will only be called if the individual header does 4409 not have its own ruleset assigned. Suggested by Jan 4410 Krueger of Unix-AG of University of Hannover. 4411 The name of the header field stored in ${hdr_name}. 4412 Comments (i.e., text within parentheses) in rulesets are not 4413 removed if the config file version is greater than or equal 4414 to 9. For example, "R$+ ( 1 ) $@ 1" matches the 4415 input "token (1)" but does not match "token". 4416 Avoid removing the Content-Transfer-Encoding MIME header on 4417 MIME messages. Problem noted by Sigurbjorn B. Larusson of 4418 Multimedia Consumer Services. Fix from Per Hedeland of 4419 Ericsson. 4420 Avoid duplicate Content-Transfer-Encoding MIME header on 4421 messages with 8-bit text in headers. Problem noted by 4422 Per Steinar Iversen of Oslo College. Fix from Per Hedeland 4423 of Ericsson. 4424 Avoid keeping maps locked longer than necessary when re-opening a 4425 modified database map file. Problem noted by Chris Adams 4426 of Renaissance Internet Services. 4427 Resolving to the $#error mailer with a temporary failure code (e.g., 4428 $#error $@ tempfail $: "400 Temporary failure") will now 4429 queue up the message instead of bouncing it. 4430 Be more liberal in acceptable responses to an SMTP RSET command as 4431 standard does not provide any indication of what to do when 4432 something other than 250 is received. Based on a patch 4433 from Steve Schweinhart of America Online. 4434 New option TrustedUser allows to specify a user who can own 4435 important files instead of root. This requires HASFCHOWN. 4436 Fix USERDB conditional so compiling with NEWDB or HESIOD and 4437 setting USERDB=0 works. Fix from Jorg Zanger of Schock. 4438 Fix another instance (similar to one in 8.9.3) of a network failure 4439 being mis-logged as "Illegal Seek" instead of whatever 4440 really went wrong. From John Beck of Sun Microsystems. 4441 $? tests also whether the macro is non-null. 4442 Print an error message if a mailer definition contains an invalid 4443 equate name. 4444 New mailer equate /= to specify a directory to chroot() into before 4445 executing the mailer program. Suggested by Igor Vinokurov. 4446 New mailer equate W= to specify the maximum time to wait for the 4447 mailer to return after sending all data to it. 4448 Only free memory from the process list when adding a new process 4449 into a previously filled slot. Previously, the memory was 4450 freed at removal time. Since removal can happen in a 4451 signal handler, this may leave the memory map in an 4452 inconsistent state. Problem noted by Jeff A. Earickson and 4453 David Cooley of Colby College. 4454 When using the UserDB @hostname catch-all, do not try to lookup 4455 local users in the passwd file. The UserDB code has 4456 already decided the message will be passed to another host 4457 for processing. Fix from Tony Landells of Burdett 4458 Buckeridge Young Limited. 4459 Support LDAP authorization via either a file containing the 4460 password or Kerberos V4 using the new map options 4461 '-ddistinguished_name', '-Mmethod', and '-Pfilename'. The 4462 distinguished_name is who to login as. The method can be 4463 one of LDAP_AUTH_NONE, LDAP_AUTH_SIMPLE, or 4464 LDAP_AUTH_KRBV4. The filename is the file containing the 4465 secret key for LDAP_AUTH_SIMPLE or the name of the Kerberos 4466 ticket file for LDAP_AUTH_KRBV4. Patch from Booker Bense 4467 of Stanford University. 4468 The ldapx map has been renamed to ldap. The use of ldapx is 4469 deprecated and will be removed in a future version. 4470 If the result of an LDAP search returns a multi-valued attribute 4471 and the map has the column delimiter set, it turns that 4472 response into a delimiter separated string. The LDAP map 4473 will traverse multiple entries as well. LDAP alias maps 4474 automatically set the column delimiter to the comma. 4475 Based on patch from Booker Bense of Stanford University and 4476 idea from Philip A. Prindeville of Mirapoint, Inc. 4477 Support return of multiple values for a single LDAP lookup. The 4478 values to be returned should be in a comma separated string. 4479 For example, `-v "email,emailother"'. Patch from 4480 Curtis W. Hillegas of Princeton University. 4481 Allow the use of LDAP for alias maps. 4482 If no LDAP attributes are specified in an LDAP map declaration, all 4483 attributes found in the match will be returned. 4484 Prevent commas in quoted strings in the AliasFile value from 4485 breaking up a single entry into multiple entries. This is 4486 needed for LDAP alias file specifications to allow for 4487 comma separated key and value strings. 4488 Keep connections to LDAP server open instead of opening and closing 4489 for each lookup. To reduce overhead, sendmail will cache 4490 connections such that multiple maps which use the same 4491 host, port, bind DN, and authentication will only result in 4492 a single connection to that host. 4493 Put timeout in the proper place for USE_LDAP_INIT. 4494 Be more careful about checking for errors and freeing memory on 4495 LDAP lookups. 4496 Use asynchronous LDAP searches to save memory and network 4497 resources. 4498 Do not copy LDAP query results if the map's match only flag is set. 4499 Increase portability to the Netscape LDAP libraries. 4500 Change the parsing of the LDAP filter specification. '%s' is still 4501 replaced with the literal contents of the map lookup key -- 4502 note that this means a lookup can be done using the LDAP 4503 special characters. The new '%0' token can be used instead 4504 of '%s' to encode the key buffer according to RFC 2254. 4505 For example, if the LDAP map specification contains '-k 4506 "(user=%s)"' and a lookup is done on "*", this would be 4507 equivalent to '-k "(user=*)"' -- matching ANY record with a 4508 user attribute. Instead, if the LDAP map specification 4509 contains '-k "(user=%0)"' and a lookup is done on "*", this 4510 would be equivalent to '-k "(user=\2A)"' -- matching a user 4511 with the name "*". 4512 New LDAP map flags: "-1" requires a single match to be returned, if 4513 more than one is returned, it is equivalent to no records 4514 being found; "-r never|always|search|find" sets the LDAP 4515 alias dereference option; "-Z size" limits the number of 4516 matches to return. 4517 New option LDAPDefaultSpec allows a default map specification for 4518 LDAP maps. The value should only contain LDAP specific 4519 settings such as "-h host -p port -d bindDN", etc. The 4520 settings will be used for all LDAP maps unless they are 4521 specified in the individual map specification ('K' 4522 command). This option should be set before any LDAP maps 4523 are defined. 4524 Prevent an NDBM alias file opening loop when the NDBM open 4525 continually fails. Fix from Roy J. Mongiovi of Georgia 4526 Tech. 4527 Reduce memory utilization for smaller symbol table entries. In 4528 particular, class entries get much smaller, which can be 4529 important if you have large classes. 4530 On network-related temporary failures, record the hostname which 4531 gave error in the queued status message. Requested by 4532 Ulrich Windl of the Universitat Regensburg. 4533 Add new F=% mailer flag to allow for a store and forward 4534 configuration. Mailers which have this flag will not attempt 4535 delivery on initial receipt of a message or on queue runs 4536 unless the queued message is selected using one of the 4537 -qI/-qR/-qS queue run modifiers or an ETRN request. Code 4538 provided by Philip Guenther of Gustavus Adolphus College. 4539 New option ControlSocketName which, when set, creates a daemon 4540 control socket. This socket allows an external program to 4541 control and query status from the running sendmail daemon 4542 via a named socket, similar to the ctlinnd interface to the 4543 INN news server. Access to this interface is controlled by 4544 the UNIX file permissions on the named socket on most UNIX 4545 systems (see sendmail/README for more information). An 4546 example control program is provided as contrib/smcontrol.pl. 4547 Change the default values of QueueLA from 8 to (8 * numproc) and 4548 RefuseLA from 12 to (12 * numproc) where numproc is the 4549 number of processors online on the system (if that can be 4550 determined). For single processor machines, this change 4551 has no effect. 4552 Don't return body of message to postmaster on "Too many hops" bounces. 4553 Based on fix from Motonori Nakamura of Kyoto University. 4554 Give more detailed DSN descriptions for some cases. Patch from 4555 Motonori Nakamura of Kyoto University. 4556 Logging of alias, forward file, and UserDB expansion now happens 4557 at LogLevel 11 or higher instead of 10 or higher. 4558 Logging of an envelope's complete delivery (the "done" message) now 4559 happens at LogLevel 10 or higher instead of 11 or higher. 4560 Logging of TCP/IP or UNIX standard input connections now happens at 4561 LogLevel 10 or higher. Previously, only TCP/IP connections 4562 were logged, and on at LogLevel 12 or higher. Setting 4563 LogLevel to 10 will now assist users in tracking frequent 4564 connection-based denial of service attacks. 4565 Log basic information about authenticated connections at LogLevel 4566 10 or higher. 4567 Log SMTP Authentication mechanism and author when logging the sender 4568 information (from= syslog line). 4569 Log the DSN code for each recipient if one is available as a new 4570 equate (dsn=). 4571 Macro expand PostmasterCopy and DoubleBounceAddress options. 4572 New "ph" map for performing ph queries in rulesets, see 4573 sendmail/README for details. Contributed by Mark Roth 4574 of the University of Illinois at Urbana-Champaign. 4575 Detect temporary lookup failures in the host map if looking up a 4576 bracketed IP address. Problem noted by Kari Hurtta of the 4577 Finnish Meteorological Institute. 4578 Do not report a Remote-MTA on local deliveries. Problem noted by 4579 Kari Hurtta of the Finnish Meteorological Institute. 4580 When a forward file points to an alias which runs a program, run 4581 the program as the default user and the default group, not 4582 the forward file user. This change also assures the 4583 :include: directives in aliases are also processed using 4584 the default user and group. Problem noted by Sergiu 4585 Popovici of DNT Romania. 4586 Prevent attempts to save a dead.letter file for a user with 4587 no home directory (/no/such/directory). Problem noted by 4588 Michael Brown of Finnigan FT/MS. 4589 Include message delay and number of tries when logging that a 4590 message has been completely delivered (LogLevel of 10 or 4591 above). Suggested by Nick Hilliard of Ireland Online. 4592 Log the sender of a message even if none of the recipients were 4593 accepted. If some of the recipients were rejected, it is 4594 helpful to know the sender of the message. 4595 Check the root directory (/) when checking a path for safety. 4596 Problem noted by John Beck of Sun Microsystems. 4597 Prevent multiple responses to the DATA command if DeliveryMode is 4598 interactive and delivering to an alias which resolves to 4599 multiple files. 4600 Macros in the helpfile are expanded if the helpfile version is 2 or 4601 greater (see below); the help function doesn't print the 4602 version of sendmail any longer, instead it is placed in 4603 the helpfile ($v). Suggested by Chuck Foster of UUNET 4604 PIPEX. Additionally, comment lines (starting with #) are 4605 skipped and a version line (#vers) is introduced. The 4606 helpfile version for 8.10.0 is 2, if no version or an older 4607 version is found, a warning is logged. The '#vers' 4608 directive should be placed at the top of the help file. 4609 Use fsync() when delivering to a file to guarantee the delivery to 4610 disk succeeded. Suggested by Nick Christenson. 4611 If delivery to a file is unsuccessful, truncate the file back to its 4612 length before the attempt. 4613 If a forward points to a filename for delivery, change to the 4614 user's uid before checking permissions on the file. This 4615 allows delivery to files on NFS mounted directories where 4616 root is remapped to nobody. Problem noted by Harald 4617 Daeubler of Universitaet Ulm. 4618 purgestat and sendmail -bH purge only expired (Timeout.hoststatus) 4619 host status files, not all files. 4620 Any macros stored in the class $={persistentMacros} will be saved 4621 in the queue file for the message and set when delivery 4622 is attempted on the queued item. Suggested by Kyle Jones of 4623 Wonderworks Inc. 4624 Add support for storing information between rulesets using the new 4625 macro map class. This can be used to store information 4626 between queue runs as well using $={persistentMacros}. 4627 Based on an idea from Jan Krueger of Unix-AG of University 4628 of Hannover. 4629 New map class arith to allow for computations in rules. The 4630 operation (+, -, *, /, l (for less than), and =) is given 4631 as key. The two operands are specified as arguments; the 4632 lookup returns the result of the computation. For example, 4633 "$(arith l $@ 4 $@ 2 $)" will return "FALSE" and 4634 "$(arith + $@ 4 $@ 2 $)" will return "6". 4635 Add new syntax for header declarations which decide whether to 4636 include the header based on a macro rather than a mailer 4637 flag: 4638 H?${MyMacro}?X-My-Header: ${MyMacro} 4639 This should be used along with $={persistentMacros}. 4640 It can be used for adding headers to a message based on 4641 the results of check_* and header check rulesets. 4642 Allow new named config file rule check_eoh which is called after 4643 all of the headers have been collected. The input to the 4644 ruleset the number of headers and the size of all of the 4645 headers in bytes separated by $|. This ruleset along with 4646 the macro storage map can be used to correlate information 4647 gathered between headers and to check for missing headers. 4648 See cf/README or doc/op/op.ps for an example. 4649 Change the default for the MeToo option to True to correspond 4650 to the clarification in the DRUMS SMTP Update spec. This 4651 option is deprecated and will be removed from a future 4652 version. 4653 Change the sendmail binary default for SendMimeErrors to True. 4654 Change the sendmail binary default for SuperSafe to True. 4655 Display ruleset names in debug and address test mode output 4656 if referencing a named ruleset. 4657 New mailer equate m= which will limit the number of messages 4658 delivered per connection on an SMTP or LMTP mailer. 4659 Improve QueueSortOrder=Host by reversing the hostname before 4660 using it to sort. Now all the same domains are really run 4661 through the queue together. If they have the same MX host, 4662 then they will have a much better opportunity to use the 4663 connection cache if available. This should be a reasonable 4664 performance improvement. Patch from Randall Winchester of 4665 the University of Maryland. 4666 If a message is rejected by a header check ruleset, log who would 4667 have received the message if it had not been rejected. 4668 New "now" value for Timeout.queuereturn to bounce entries from the 4669 queue immediately. No delivery attempt is made. 4670 Increase sleeping time exponentially after too many "bad" commands 4671 up to 4 minutes delay (compare MAX{BAD,NOOP,HELO,VRFY,ETRN}- 4672 COMMANDS). 4673 New option ClientPortOptions similar to DaemonPortOptions 4674 but for outgoing connections. 4675 New suboptions for DaemonPortOptions: Name (a name used for 4676 error messages and logging) and Modifiers, i.e. 4677 a require authentication 4678 b bind to interface through which mail has 4679 been received 4680 c perform hostname canonification 4681 f require fully qualified hostname 4682 h use name of interface for outgoing HELO 4683 command 4684 C don't perform hostname canonification 4685 E disallow ETRN (see RFC 2476) 4686 New suboption for ClientPortOptions: Modifiers, i.e. 4687 h use name of interface for HELO command 4688 The version number for queue files (qf) has been incremented to 4. 4689 Log unacceptable HELO/EHLO domain name attempts if LogLevel is set 4690 to 10 or higher. Suggested by Rick Troxel of the National 4691 Institutes of Health. 4692 If a mailer dies, print the status in decimal instead of octal 4693 format. Suggested by Michael Shapiro of Sun Microsystems. 4694 Limit the length of all MX records considered for delivery to 8k. 4695 Move message priority from sender to recipient logging. Suggested by 4696 Ulrich Windl of the Universitat Regensburg. 4697 Add support for Berkeley DB 3.X. 4698 Add fix for Berkeley DB 2.X fcntl() locking race condition. 4699 Requires a post-2.7.5 version of Berkeley DB. 4700 Support writing traffic log (sendmail -X option) to a FIFO. 4701 Patch submitted by Rick Heaton of Network Associates, Inc. 4702 Do not ignore Timeout settings in the .cf file when a Timeout 4703 sub-options is set on the command line. Problem noted by 4704 Graeme Hewson of Oracle. 4705 Randomize equal preference MX records each time delivery is 4706 attempted via a new connection to a host instead of once per 4707 session. Suggested by Scott Salvidio of Compaq. 4708 Implement enhanced status codes as defined by RFC 2034. 4709 Add [hostname] to class w for the names of all interfaces unless 4710 DontProbeInterfaces is set. This is useful for sending mails 4711 to hosts which have dynamically assigned names. 4712 If a message is bounced due to bad MIME conformance, avoid bouncing 4713 the bounce for the same reason. If the body is not 8-bit 4714 clean, and EightBitMode isn't set to pass8, the body will 4715 not be included in the bounce. Problem noted by Valdis 4716 Kletnieks of Virginia Tech. 4717 The timeout for sending a message via SMTP has been changed from 4718 '${msgsize} / 16 + (${nrcpts} * 300)' to a timeout which 4719 simply checks for progress on sending data every 5 minutes. 4720 This will detect the inability to send information quicker 4721 and reduce the number of processes simply waiting to 4722 timeout. 4723 Prevent a segmentation fault on systems which give a partial filled 4724 interface address structure when loading the system network 4725 interface addresses. Fix from Reinier Bezuidenhout of 4726 Nanoteq. 4727 Add a compile-time configuration macro, MAXINTERFACES, which 4728 indicates the number of interfaces to read when probing 4729 for hostnames and IP addresses for class w ($=w). The 4730 default value is 512. Based on idea from Reinier 4731 Bezuidenhout of Nanoteq. 4732 If the RefuseLA option is set to 0, do not reject connections based 4733 on load average. 4734 Allow ruleset 0 to have a name. Problem noted by Neil Rickert of 4735 Northern Illinois University. 4736 Expand the Return-Path: header at delivery time, after "owner-" 4737 envelope splitting has occurred. 4738 Don't try to sort the queue if there are no entries. Patch from 4739 Luke Mewburn from RMIT University. 4740 Add a "/quit" command to address test mode. 4741 Include the proper sender in the UNIX "From " line and Return-Path: 4742 header when undeliverable mail is saved to ~/dead.letter. 4743 Problem noted by Kari Hurtta of the Finnish Meteorological 4744 Institute. 4745 The contents of a class can now be copied to another class using 4746 the syntax: "C{Dest} $={Source}". This would copy all of 4747 the items in class $={Source} into the class $={Dest}. 4748 Include original envelope's error transcript in bounces created for 4749 split (owner-) envelopes to see the original errors when 4750 the recipients were added. Based on fix from Motonori 4751 Nakamura of Kyoto University. 4752 Show reason for permanent delivery errors directly after the 4753 addresses. From Motonori Nakamura of Kyoto University. 4754 Prevent a segmentation fault when bouncing a split-envelope 4755 message. Patch from Motonori Nakamura of Kyoto University. 4756 If the specification for the queue run interval (-q###) has a 4757 syntax error, consider the error fatal and exit. 4758 Pay attention to CheckpointInterval during LMTP delivery. Problem 4759 noted by Motonori Nakamura of Kyoto University. 4760 On operating systems which have setlogin(2), use it to set the 4761 login name to the RunAsUserName when starting as a daemon. 4762 This is for delivery to programs which use getlogin(). 4763 Based on fix from Motonori Nakamura of Kyoto University. 4764 Differentiate between "command not implemented" and "command 4765 unrecognized" in the SMTP dialogue. 4766 Strip returns from forward and include files. Problem noted by 4767 Allan E Johannesen of Worcester Polytechnic Institute. 4768 Prevent a core dump when using 'sendmail -bv' on an address which 4769 resolves to the $#error mailer with a temporary failure. 4770 Based on fix from Neil Rickert of Northern Illinois 4771 University. 4772 Prevent multiple deliveries of a message with a "non-local alias" 4773 pointing to a local user, if canonicalization fails 4774 the message was requeued *and* delivered to the alias. 4775 If an invalid ruleset is declared, the ruleset name could be 4776 ignored and its rules added to S0. Instead, ignore the 4777 ruleset lines as well. 4778 Avoid incorrect Final-Recipient, Action, and X-Actual-Recipient 4779 success DSN fields as well as duplicate entries for a 4780 single address due to S5 and UserDB processing. Problems 4781 noted by Kari Hurtta of the Finnish Meteorological 4782 Institute. 4783 Turn off timeouts when exiting sendmail due to an interrupt signal 4784 to prevent the timeout from firing during the exit process. 4785 Problem noted by Michael Shapiro of Sun Microsystems. 4786 Do not append @MyHostName to non-RFC822 addresses output by the EXPN 4787 command or on Final-Recipient: and X-Actual-Recipient: DSN 4788 headers. Non-RFC822 addresses include deliveries to 4789 programs, file, DECnet, etc. 4790 Fix logic for determining if a local user is using -f or -bs to 4791 spoof their return address. Based on idea from Neil Rickert 4792 of Northern Illinois University and patch from Per Hedeland 4793 of Ericsson. 4794 Report the proper UID in the bounce message if an :include: file is 4795 owned by a uid that doesn't map to a username and the 4796 :include: file contains delivery to a file or program. 4797 Problem noted by John Beck of Sun Microsystems. 4798 Avoid the attempt of trying to send a second SMTP QUIT command if 4799 the remote server responds to the first QUIT with a 4xx 4800 response code and drops the connection. This behavior was 4801 noted by Ulrich Windl of the Universitat Regensburg when 4802 sendmail was talking to the Mercury 1.43 MTA. 4803 If a hostname lookup times out and ServiceSwitchFile is set but the 4804 file is not present, the lookup failure would be marked as 4805 a permanent failure instead of a temporary failure. Fix 4806 from Russell King of the ARM Linux Project. 4807 Handle aliases or forwards which deliver to programs using tabs 4808 instead of spaces between arguments. Problem noted by Randy 4809 Wormser. Fix from Neil Rickert of Northern Illinois 4810 University. 4811 Allow MaxRecipientsPerMessage option to be set on the command line 4812 by normal users (e.g., sendmail won't drop its root 4813 privileges) to allow overrides for message submission via 4814 'sendmail -bs'. 4815 Set the names for help file and statistics file to "helpfile" and 4816 "statistics", respectively, if no parameters are given for 4817 them in the .cf file. 4818 Avoid bogus 'errbody: I/O Error -7' log messages when sending 4819 success DSN messages for messages relayed to non-DSN aware 4820 systems. Problem noted by Juergen Georgi of RUS University 4821 of Stuttgart and Kyle Tucker of Parexel International. 4822 Prevent +detail information from interfering with local delivery to 4823 multiple users in the same transaction (F=m). 4824 Add H_FORCE flag for the X-Authentication-Warning: header, so it 4825 will be added even if one already exists. Problem noted 4826 by Michal Zalewski of Marchew Industries. 4827 Stop processing SMTP commands if the SMTP connection is dropped. 4828 This prevents a remote system from flooding the connection 4829 with commands and then disconnecting. Previously, the 4830 server would process all of the buffered commands. Problem 4831 noted by Michal Zalewski of Marchew Industries. 4832 Properly process user-supplied headers beginning with '?'. Problem 4833 noted by Michal Zalewski of Marchew Industries. 4834 If multiple header checks resolve to the $#error mailer, use the 4835 last permanent (5XX) failure if any exist. Otherwise, use 4836 the last temporary (4XX) failure. 4837 RFC 1891 requires "hexchar" in a "xtext" to be upper case. Patch 4838 from Ronald F. Guilmette of Infinite Monkeys & Co. 4839 Timeout.ident now defaults to 5 seconds instead of 30 seconds to 4840 prevent the now common delays associated with mailing to a 4841 site which drops IDENT packets. Suggested by many. 4842 Persistent host status data is not reloaded disk when current data 4843 is available in the in-memory cache. Problem noted by Per 4844 Hedeland of Ericsson. 4845 mailq displays unprintable characters in addresses as their octal 4846 representation and a leading backslash. This avoids problems 4847 with "unprintable" characters. Problem noted by Michal 4848 Zalewski of the "Internet for Schools" project (IdS). 4849 The mail line length limit (L= equate) was adding the '!' indicator 4850 one character past the limit. This would cause subsequent 4851 hops to break the line again. The '!' is now placed in 4852 the last column of the limit if the line needs to be broken. 4853 Problem noted by Joe Pruett of Q7 Enterprises. Based on fix 4854 from Per Hedeland of Ericsson. 4855 If a resolver ANY query is larger than the UDP packet size, the 4856 resolver will fall back to TCP. However, some 4857 misconfigured firewalls block 53/TCP so the ANY lookup 4858 fails whereas an MX or A record might succeed. Therefore, 4859 don't fail on ANY queries. 4860 If an SMTP recipient is rejected due to syntax errors in the 4861 address, do not send an empty postmaster notification DSN 4862 to the postmaster. Problem noted by Neil Rickert of 4863 Northern Illinois University. 4864 Allow '_' and '.' in map names when parsing a sequence map 4865 specification. Patch from William Setzer of North Carolina 4866 State University. 4867 Fix hostname in logging of read timeouts for the QUIT command on 4868 cached connections. Problem noted by Neil Rickert of 4869 Northern Illinois University. 4870 Use a more descriptive entry to log "null" connections, i.e., 4871 "host did not issue MAIL/EXPN/VRFY/ETRN during connection". 4872 Fix a file descriptor leak in ONEX mode. 4873 Portability: 4874 Reverse signal handling logic such that sigaction(2) with 4875 the SA_RESTART flag is the preferred method and the 4876 other signal methods are only tried if SA_RESTART 4877 is not available. Problem noted by Allan E 4878 Johannesen of Worcester Polytechnic Institute. 4879 AIX 4.x supports the sa_len member of struct sockaddr. 4880 This allows network interface probing to work 4881 properly. Fix from David Bronder of the 4882 University of Iowa. 4883 AIX 4.3 has snprintf() support. 4884 Use "PPC" as the architecture name when building under 4885 AIX. This will be reflected in the obj.* directory 4886 name. 4887 Apple Darwin support based on Apple Rhapsody port. 4888 Fixed AIX 'make depend' method from Valdis Kletnieks of 4889 Virginia Tech. 4890 Digital UNIX has uname(2). 4891 GNU Hurd updates from Mark Kettenis of the University of 4892 Amsterdam. 4893 Improved HPUX 11.0 portability. 4894 Properly determine the number of CPUs on FreeBSD 2.X, 4895 FreeBSD 3.X, HP/UX 10.X and HP/UX 11.X. 4896 Remove special IRIX ABI cases from Build script and the OS 4897 files. Use the standard 'cc' options used by SGI 4898 in building the operating system. Users can 4899 override the defaults by setting confCC and 4900 confLIBSEARCHPATH appropriately. 4901 IRIX nsd map support from Bob Mende of SGI. 4902 Minor devtools fixes for IRIX from Bob Mende of SGI. 4903 Linux patch for IP_SRCROUTE support from Joerg Dorchain 4904 of MW EDV & ELECTRONIC. 4905 Linux now uses /usr/sbin for confEBINDIR in the build 4906 system. From MATSUURA Takanori of Osaka University. 4907 Remove special treatment for Linux PPC in the build 4908 system. From MATSUURA Takanori of Osaka University. 4909 Motorolla UNIX SYSTEM V/88 Release 4.0 support from 4910 Sergey Rusanov of the Republic of Udmurtia. 4911 NCR MP-RAS 3.x includes regular expression support. From 4912 Tom J. Moore of NCR. 4913 NEC EWS-UX/V series settings for _PATH_VENDOR_CF and 4914 _PATH_SENDMAILPID from Oota Toshiya of 4915 NEC Computers Group Planning Division. 4916 Minor NetBSD owner/group tweaks from Ayamura Kikuchi, M.D. 4917 NEWS-OS 6.X listed SYSLOG_BUFSIZE as 256 in confENVDEF and 4918 1024 in conf.h. Since confENVDEF would be used, 4919 use that value in conf.h. 4920 Use NeXT's NETINFO to get domain name. From Gerd Knops of 4921 BITart Consulting. 4922 Use NeXT's NETINFO for alias and hostname resolution if 4923 AUTO_NETINFO_ALIASES and AUTO_NETINFO_HOSTS are 4924 defined. Patch from Wilfredo Sanchez of Apple 4925 Computer, Inc. 4926 NeXT portability tweaks. Problems reported by Dragan 4927 Milicic of the University of Utah and J. P. McCann 4928 of E I A. 4929 New compile flag FAST_PID_RECYCLE: set this if your system 4930 can reuse the same PID in the same second. 4931 New compile flag HASFCHOWN: set this if your OS has 4932 fchown(2). 4933 New compile flag HASRANDOM: set this to 0 if your OS does 4934 not have random(3). rand() will be used instead. 4935 New compile flag HASSRANDOMDEV: set this if your OS has 4936 srandomdev(3). 4937 New compile flag HASSETLOGIN: set this if your OS has 4938 setlogin(2). 4939 Replace SINIX and ReliantUNIX support with version 4940 specific SINIX files. From Gerald Rinske of 4941 Siemens Business Services. 4942 Use the 60-second load average instead of the 5 second load 4943 average on Compaq Tru64 UNIX (formerly Digital 4944 UNIX). From Chris Teakle of the University of Qld. 4945 Use ANSI C by default for Compaq Tru64 UNIX. Suggested by 4946 Randall Winchester of Swales Aerospace. 4947 Correct setgroups() prototype for Compaq Tru64 UNIX. 4948 Problem noted by Randall Winchester of Swales 4949 Aerospace. 4950 Hitachi 3050R/3050RX and 3500 Workstations running 4951 HI-UX/WE2 4.02, 6.10 and 7.10 from Motonori 4952 NAKAMURA of Kyoto University. 4953 New compile flag NO_GETSERVBYNAME: set this to disable 4954 use of getservbyname() on systems which can 4955 not lookup a service by name over NIS, such as 4956 HI-UX. Patch from Motonori NAKAMURA of Kyoto 4957 University. 4958 Use devtools/bin/install.sh on SCO 5.x. Problem noted 4959 by Sun Wenbing of the China Engineering and 4960 Technology Information Network. 4961 make depend didn't work properly on UNIXWARE 4.2. Problem 4962 noted by Ariel Malik of Netology, Ltd. 4963 Use /usr/lbin as confEBINDIR for Compaq Tru64 (Digital UNIX). 4964 Set confSTDIO_TYPE to torek for BSD-OS, FreeBSD, NetBSD, 4965 and OpenBSD. 4966 A recent Compaq Ultrix 4.5 Y2K patch has broken detection 4967 of local_hostname_length(). See sendmail/README 4968 for more details. Problem noted by Allan E 4969 Johannesen of Worcester Polytechnic Institute. 4970 CONFIG: Begin using /etc/mail/ for sendmail related files. This 4971 affects a large number of files. See cf/README for more 4972 details. 4973 CONFIG: New macro MAIL_SETTINGS_DIR contains the path (including 4974 trailing slash) for the mail settings directory. 4975 CONFIG: Increment version number of config file to 9. 4976 CONFIG: OSTYPE(`bsdi1.0') and OSTYPE(`bsdi2.0') have been 4977 deprecated and may be removed from a future release. 4978 BSD/OS users should begin using OSTYPE(`bsdi'). 4979 CONFIG: OpenBSD 2.4 installs mail.local non-set-user-ID root. This 4980 requires a new OSTYPE(`openbsd'). From Todd C. Miller of 4981 Courtesan Consulting. 4982 CONFIG: New OSTYPE(`hpux11') for HP/UX 11.X. 4983 CONFIG: A syntax error in check_mail would cause fake top-level 4984 domains (.BITNET, .DECNET, .FAX, .USENET, and .UUCP) to 4985 be improperly rejected as unresolvable. 4986 CONFIG: New FEATURE(`dnsbl') takes up to two arguments (name of 4987 DNS server, rejection message) and can be included 4988 multiple times. 4989 CONFIG: New FEATURE(`relay_mail_from') allows relaying if the 4990 mail sender is listed as RELAY in the access map (and tagged 4991 with From:). 4992 CONFIG: Optional tagging of LHS in the access map (Connect:, 4993 From:, To:) to enable finer control. 4994 CONFIG: New FEATURE(`ldap_routing') implements LDAP address 4995 routing. See cf/README for a complete description of the 4996 new functionality. 4997 CONFIG: New variables for the new sendmail options: 4998 confAUTH_MECHANISMS AuthMechanisms 4999 confAUTH_OPTIONS AuthOptions 5000 confCLIENT_OPTIONS ClientPortOptions 5001 confCONTROL_SOCKET_NAME ControlSocketName 5002 confDEAD_LETTER_DROP DeadLetterDrop 5003 confDEF_AUTH_INFO DefaultAuthInfo 5004 confDF_BUFFER_SIZE DataFileBufferSize 5005 confLDAP_DEFAULT_SPEC LDAPDefaultSpec 5006 confMAX_ALIAS_RECURSION MaxAliasRecursion 5007 confMAX_HEADERS_LENGTH MaxHeadersLength 5008 confMAX_MIME_HEADER_LENGTH MaxMimeHeaderLength 5009 confPID_FILE PidFile 5010 confPROCESS_TITLE_PREFIX ProcessTitlePrefix 5011 confRRT_IMPLIES_DSN RrtImpliesDsn 5012 confTO_CONTROL Timeout.control 5013 confTO_RESOLVER_RETRANS Timeout.resolver.retrans 5014 confTO_RESOLVER_RETRANS_FIRST Timeout.resolver.retrans.first 5015 confTO_RESOLVER_RETRANS_NORMAL Timeout.resolver.retrans.normal 5016 confTO_RESOLVER_RETRY Timeout.resolver.retry 5017 confTO_RESOLVER_RETRY_FIRST Timeout.resolver.retry.first 5018 confTO_RESOLVER_RETRY_NORMAL Timeout.resolver.retry.normal 5019 confTRUSTED_USER TrustedUser 5020 confXF_BUFFER_SIZE XscriptFileBufferSize 5021 CONFIG: confDAEMON_OPTIONS has been replaced by DAEMON_OPTIONS(), 5022 which takes the options as argument and can be used 5023 multiple times; see cf/README for details. 5024 CONFIG: Add a fifth mailer definition to MAILER(`smtp') called 5025 "dsmtp". This mail provides on-demand delivery using the 5026 F=% mailer flag described above. The "dsmtp" mailer 5027 definition uses the new DSMTP_MAILER_ARGS which defaults 5028 to "IPC $h". 5029 CONFIG: New variables LOCAL_MAILER_MAXMSGS, SMTP_MAILER_MAXMSGS, 5030 and RELAY_MAILER_MAXMSGS for setting the m= equate for the 5031 local, smtp, and relay mailers respectively. 5032 CONFIG: New variable LOCAL_MAILER_DSN_DIAGNOSTIC_CODE for setting 5033 the DSN Diagnostic-Code type for the local mailer. The 5034 value should be changed with care. 5035 CONFIG: FEATURE(`local_lmtp') now sets the DSN Diagnostic-Code type 5036 for the local mailer to the proper value of "SMTP". 5037 CONFIG: All included maps are no longer optional by default; if 5038 there there is a problem with a map, sendmail will 5039 complain. 5040 CONFIG: Removed root from class E; use EXPOSED_USER(`root') 5041 to get the old behavior. Suggested by Joe Pruett 5042 of Q7 Enterprises. 5043 CONFIG: MASQUERADE_EXCEPTION() defines hosts/subdomains which 5044 will not be masqueraded. Proposed by Arne Wichmann 5045 of MPI Saarbruecken, Griff Miller of PGS Tensor, 5046 Jayme Cox of Broderbund Software Inc. 5047 CONFIG: A list of exceptions for FEATURE(`nocanonify') can be 5048 specified by CANONIFY_DOMAIN or CANONIFY_DOMAIN_FILE, 5049 i.e., a list of domains which are passed to $[ ... $] 5050 for canonification. Based on an idea from Neil Rickert 5051 of Northern Illinois University. 5052 CONFIG: If `canonify_hosts' is specified as parameter for 5053 FEATURE(`nocanonify') then addresses which have only 5054 a hostname, e.g., <user@host>, will be canonified. 5055 CONFIG: If FEATURE(`nocanonify') is turned on, a trailing dot is 5056 nevertheless added to addresses with more than one component 5057 in it. 5058 CONFIG: Canonification is no longer attempted for any host or domain 5059 in class 'P' ($=P). 5060 CONFIG: New class for matching virtusertable entries $={VirtHost} that 5061 can be populated by VIRTUSER_DOMAIN or VIRTUSER_DOMAIN_FILE. 5062 FEATURE(`virtuser_entire_domain') can be used to apply this 5063 class also to entire subdomains. Hosts in this class are 5064 treated as canonical in SCanonify2, i.e., a trailing dot 5065 is added. 5066 CONFIG: If VIRTUSER_DOMAIN() or VIRTUSER_DOMAIN_FILE() are used, 5067 include $={VirtHost} in $=R (hosts allowed to relay). 5068 CONFIG: FEATURE(`generics_entire_domain') can be used to apply the 5069 genericstable also to subdomains of $=G. 5070 CONFIG: Pass "+detail" as %2 for virtusertable lookups. 5071 Patch from Noam Freedman from University of Chicago. 5072 CONFIG: Pass "+detail" as %1 for genericstable lookups. Suggested 5073 by Raymond S Brand of rsbx.net. 5074 CONFIG: Allow @domain in genericstable to override masquerading. 5075 Suggested by Owen Duffy from Owen Duffy & Associates. 5076 CONFIG: LOCAL_DOMAIN() adds entries to class w. Suggested by Steve 5077 Hubert of University of Washington. 5078 CONFIG: OSTYPE(`gnuhurd') has been replaced by OSTYPE(`gnu') as 5079 GNU is now the canonical system name. From Mark 5080 Kettenis of the University of Amsterdam. 5081 CONFIG: OSTYPE(`unixware7') updates from Larry Rosenman. 5082 CONFIG: Do not include '=' in option expansion if there is no value 5083 associated with the option. From Andrew Brown of 5084 Graffiti World Wide, Inc. 5085 CONFIG: Add MAILER(`qpage') to define a new pager mailer. Contributed 5086 by Philip A. Prindeville of Enteka Enterprise Technology 5087 Services. 5088 CONFIG: MAILER(`cyrus') was not preserving case for mail folder 5089 names. Problem noted by Randall Winchester of Swales 5090 Aerospace. 5091 CONFIG: RELAY_MAILER_FLAGS can be used to define additional flags 5092 for the relay mailer. Suggested by Doug Hughes of Auburn 5093 University and Brian Candler. 5094 CONFIG: LOCAL_MAILER_FLAGS now includes 'P' (Add Return-Path: 5095 header) by default. Suggested by Per Hedeland of Ericsson. 5096 CONFIG: Use SMART_HOST for bracketed addresses, e.g., user@[host]. 5097 Suggested by Kari Hurtta of the Finnish Meteorological 5098 Institute. 5099 CONFIG: New macro MODIFY_MAILER_FLAGS to tweak *_MAILER_FLAGS; 5100 i.e., to set, add, or delete flags. 5101 CONFIG: If SMTP AUTH is used then relaying is allowed for any user 5102 who authenticated via a "trusted" mechanism, i.e., one that 5103 is defined via TRUST_AUTH_MECH(`list of mechanisms'). 5104 CONFIG: FEATURE(`delay_checks') delays check_mail and check_relay 5105 after check_rcpt and allows for exceptions from the checks. 5106 CONFIG: Map declarations have been moved into their associated 5107 feature files to allow greater flexibility in use of 5108 sequence maps. Suggested by Per Hedeland of Ericsson. 5109 CONFIG: New macro LOCAL_MAILER_EOL to override the default end of 5110 line string for the local mailer. Requested by Il Oh of 5111 Willamette Industries, Inc. 5112 CONFIG: Route addresses are stripped, i.e., <@a,@b,@c:user@d> is 5113 converted to <user@d> 5114 CONFIG: Reject bogus return address of <@@hostname>, generated by 5115 Sun's older, broken configuration files. 5116 CONFIG: FEATURE(`nullclient') now provides the full rulesets of a 5117 normal configuration, allowing anti-spam checks to be 5118 performed. 5119 CONFIG: Don't return a permanent error (Relaying denied) if 5120 ${client_name} can't be resolved just temporarily. 5121 Suggested by Kari Hurtta of the Finnish Meteorological 5122 Institute. 5123 CONFIG: Change numbered rulesets into named (which still can 5124 be accessed by their numbers). 5125 CONFIG: FEATURE(`nouucp') takes one parameter: reject or nospecial 5126 which describes whether to disallow "!" in the local part 5127 of an address. 5128 CONFIG: Call Local_localaddr from localaddr (S5) which can be used 5129 to rewrite an address from a mailer which has the F=5 flag 5130 set. If the ruleset returns a mailer, the appropriate 5131 action is taken, otherwise the returned tokens are ignored. 5132 CONFIG: cf/ostype/solaris.m4 has been renamed to solaris2.pre5.m4 5133 and cf/ostype/solaris2.m4 is now a copy of solaris2.ml.m4. 5134 The latter is kept around for backward compatibility. 5135 CONFIG: Allow ":D.S.N:" for mailer/virtusertable "error:" entries, 5136 where "D.S.N" is an RFC 1893 compliant error code. 5137 CONFIG: Use /usr/lbin as confEBINDIR for Compaq Tru64 (Digital UNIX). 5138 CONFIG: Remove second space between username and date in UNIX From_ 5139 line. Noted by Allan E Johannesen of Worcester Polytechnic 5140 Institute. 5141 CONFIG: Make sure all of the mailers have complete T= equates. 5142 CONFIG: Extend FEATURE(`local_procmail') so it can now take 5143 arguments overriding the mailer program, arguments, and 5144 mailer definition flags. This makes it possible to use 5145 other programs such as maildrop for local delivery. 5146 CONFIG: Emit warning if FEATURE(`local_lmtp') or 5147 FEATURE(`local_procmail') is given after MAILER(`local'). 5148 Patch from Richard A. Nelson of IBM. 5149 CONFIG: Add SMTP Authentication information to Received: header 5150 default value (confRECEIVED_HEADER). 5151 CONFIG: Remove `l' flag from USENET_MAILER_FLAGS as it is not a 5152 local mailer. Problem noted by Per Hedeland of Ericsson. 5153 CONTRIB: Added bounce-resender.pl from Brian R. Gaeke of the 5154 University of California at Berkeley. 5155 CONTRIB: Added domainmap.m4 from Mark D. Roth of the University of 5156 Illinois at Urbana-Champaign. 5157 CONTRIB: etrn.pl now recognizes bogus host names. Patch from 5158 Bruce Barnett of GE's R&D Lab. 5159 CONTRIB: Patches for re-mqueue.pl by Graeme Hewson of Oracle 5160 Corporation UK. 5161 CONTRIB: Added qtool.pl to assist in managing the queues. 5162 DEVTOOLS: Prevent user environment variables from interfering with 5163 the Build scripts. Problem noted by Ezequiel H. Panepucci of 5164 Yale University. 5165 DEVTOOLS: 'Build -M' will display the obj.* directory which will 5166 be used for building. 5167 DEVTOOLS: 'Build -A' will display the architecture that would be 5168 used for a fresh build. 5169 DEVTOOLS: New variable confRANLIB, set automatically by configure.sh. 5170 DEVTOOLS: New variable confRANLIBOPTS for the options to send to 5171 ranlib. 5172 DEVTOOLS: 'Build -O <path>' will have the object files build in 5173 <path>/obj.*. Suggested by Bryan Costales of Exactis. 5174 DEVTOOLS: New variable confNO_MAN_BUILD which will prevent the 5175 building of the man pages when defined. Suggested by Bryan 5176 Costales. 5177 DEVTOOLS: New variables confNO_HELPFILE_INSTALL and 5178 confNO_STATISTICS_INSTALL which will prevent the 5179 installation of the sendmail helpfile and statistics file 5180 respectively. Suggested by Bryan Costales. 5181 DEVTOOLS: Recognize ReliantUNIX as SINIX. Patch from Gerald Rinske 5182 of Siemens Business Services. 5183 DEVTOOLS: New variable confSTDIO_TYPE which defines the type of 5184 stdio library. The new buffered file I/O depends on the 5185 Torek stdio library. This option can be either portable or 5186 torek. 5187 DEVTOOLS: New variables confSRCADD and confSMSRCADD which 5188 correspond to confOBJADD and confSMOBJADD respectively. 5189 They should contain the C source files for the object files 5190 listed in confOBJADD and confSMOBJADD. These file names 5191 will be passed to the 'make depend' stage of compilation. 5192 DEVTOOLS: New program specific variables for each of the programs 5193 in the sendmail distribution. Each has the form 5194 `conf_prog_ENVDEF', for example, `conf_sendmail_ENVDEF'. 5195 The new variables are conf_prog_ENVDEF, conf_prog_LIBS, 5196 conf_prog_SRCADD, and conf_prog_OBJADD. 5197 DEVTOOLS: Build system redesign. This should have little affect on 5198 building the distribution, but documentation on the changes 5199 are in devtools/README. 5200 DEVTOOLS: Don't allow 'Build -f file' if an object directory already 5201 exists. Suggested by Valdis Kletnieks of Virginia Tech. 5202 DEVTOOLS: Rename confSRCDIR to confSMSRCDIR since it only identifies 5203 the path to the sendmail source directory. confSRCDIR is a 5204 new variable which identifies the root of the source 5205 directories for all of the programs in the distribution. 5206 DEVTOOLS: confSRCDIR and confSMSRCDIR are now determined at Build 5207 time. They can both still be overridden by setting the m4 5208 macro. 5209 DEVTOOLS: confSBINGRP now defaults to bin instead of kmem. 5210 DEVTOOLS: 'Build -Q prefix' uses devtools/Site/prefix.*.m4 for 5211 build configurations, and places objects in obj.prefix.*/. 5212 Complains as 'Build -f file' does for existing object 5213 directories. Suggested by Tom Smith of Digital Equipment 5214 Corporation. 5215 DEVTOOLS: Setting confINSTALL_RAWMAN will install unformatted 5216 manual pages in the directory tree specified by 5217 confMANROOTMAN. 5218 DEVTOOLS: If formatting the manual pages fails, copy in the 5219 preformatted pages from the distribution. The new variable 5220 confCOPY specifies the copying program. 5221 DEVTOOLS: Defining confFORCE_RMAIL will install rmail without 5222 question. Suggested by Terry Lambert of Whistle 5223 Communications. 5224 DEVTOOLS: confSTFILE and confHFFILE can be used to change the names 5225 of the installed statistics and help files, respectively. 5226 DEVTOOLS: Remove spaces in `uname -r` output when determining 5227 operating system identity. Problem noted by Erik 5228 Wachtenheim of Dartmouth College. 5229 DEVTOOLS: New variable confLIBSEARCHPATH to specify the paths that 5230 will be search for the libraries specified in confLIBSEARCH. 5231 Defaults to "/lib /usr/lib /usr/shlib". 5232 DEVTOOLS: New variables confSTRIP and confSTRIPOPTS for specifying 5233 how to strip binaries. These are used by the new 5234 install-strip target. 5235 DEVTOOLS: New config file site.post.m4 which is included after 5236 the others (if it exists). 5237 DEVTOOLS: Change order of LIBS: first product specific libraries 5238 then the default ones. 5239 MAIL.LOCAL: Will not be installed set-user-ID root. To use mail.local 5240 as local delivery agent without LMTP mode, use 5241 MODIFY_MAILER_FLAGS(`LOCAL', `+S') 5242 to set the S flag. 5243 MAIL.LOCAL: Do not reject addresses which would otherwise be 5244 accepted by sendmail. Suggested by Neil Rickert of 5245 Northern Illinois University. 5246 MAIL.LOCAL: New -7 option which causes LMTP mode not to advertise 5247 8BITMIME in the LHLO response. Suggested by Kari Hurtta of 5248 the Finnish Meteorological Institute. 5249 MAIL.LOCAL: Add support for the maillock() routines by defining 5250 MAILLOCK when compiling. Also requires linking with 5251 -lmail. Patch from Neil Rickert of Northern Illinois 5252 University. 5253 MAIL.LOCAL: Create a Content-Length: header if CONTENTLENGTH is 5254 defined when compiling. Automatically set for Solaris 2.3 5255 and later. Patch from Neil Rickert of Northern Illinois 5256 University. 5257 MAIL.LOCAL: Move the initialization of the 'notifybiff' address 5258 structure to the beginning of the program. This ensures that 5259 the getservbyname() is done before any seteuid to a possibly 5260 unauthenticated user. If you are using NIS+ and secure RPC 5261 on a Solaris system, this avoids syslog messages such as, 5262 "authdes_refresh: keyserv(1m) is unable to encrypt session 5263 key." Patch from Neil Rickert of Northern Illinois 5264 University. 5265 MAIL.LOCAL: Support group writable mail spool files when MAILGID is 5266 set to the gid to use (-DMAILGID=6) when compiling. 5267 Patch from Neil Rickert of Northern Illinois University. 5268 MAIL.LOCAL: When a mail message included lines longer than 2046 5269 characters (in LMTP mode), mail.local split the incoming 5270 line up into 2046-character output lines (excluding the 5271 newline). If an input line was 2047 characters long 5272 (excluding CR-LF) and the last character was a '.', 5273 mail.local saw it as the end of input, transferred it to the 5274 user mailbox and tried to write an `ok' back to sendmail. 5275 If the message was much longer, both sendmail and 5276 mail.local would deadlock waiting for each other to read 5277 what they have written. Problem noted by Peter Jeremy of 5278 Alcatel Australia Limited. 5279 MAIL.LOCAL: New option -b to return a permanent error instead of a 5280 temporary error if a mailbox exceeds quota. Suggested by 5281 Neil Rickert of Northern Illinois University. 5282 MAIL.LOCAL: The creation of a lockfile is subject to a global 5283 timeout to avoid starvation. 5284 MAIL.LOCAL: Properly parse addresses with multiple quoted 5285 local-parts. Problem noted by Ronald F. Guilmette of 5286 Infinite Monkeys & Co. 5287 MAIL.LOCAL: NCR MP/RAS 3.X portability from Tom J. Moore of NCR. 5288 MAILSTATS: New -p option to invoke program mode in which stats are 5289 printed in a machine readable fashion and the stats file 5290 is reset. Patch from Kevin Hildebrand of the University 5291 of Maryland. 5292 MAKEMAP: If running as root, automatically change the ownership of 5293 generated maps to the TrustedUser as specified in the 5294 sendmail configuration file. 5295 MAKEMAP: New -C option to accept an alternate sendmail 5296 configuration file to use for finding the TrustedUser 5297 option. 5298 MAKEMAP: New -u option to dump (unmap) a database. Based on 5299 code contributed by Roy Mongiovi of Georgia Tech. 5300 MAKEMAP: New -e option to allow empty values. Suggested by Philip 5301 A. Prindeville of Enteka Enterprise Technology Services. 5302 MAKEMAP: Compile cleanly on 64-bit operating systems. Problem 5303 noted by Gerald Rinske of Siemens Business Services. 5304 OP.ME: Correctly document interaction between F=S and U= mailer 5305 equates. Problem noted by Bob Halley of Internet Engines. 5306 OP.ME: Fixup Timeout documentation. From Graeme Hewson of Oracle 5307 Corporation UK. 5308 OP.ME: The Timeout [r] option was incorrectly listed as "safe" 5309 (e.g., sendmail would not drop root privileges if the 5310 option was specified on the command line). Problem noted 5311 by Todd C. Miller of Courtesan Consulting. 5312 PRALIASES: Handle the hash and btree map specifications for 5313 Berkeley DB. Patch from Brian J. Coan of the 5314 Institute for Global Communications. 5315 PRALIASES: Read the sendmail.cf file for the location(s) of the 5316 alias file(s) if the -f option is not used. Patch from 5317 John Beck of Sun Microsystems. 5318 PRALIASES: New -C option to specify an alternate sendmail 5319 configuration file to use for finding alias file(s). Patch 5320 from John Beck of Sun Microsystems. 5321 SMRSH: allow shell commands echo, exec, and exit. Allow command 5322 lists using || and &&. Based on patch from Brian J. Coan 5323 of the Institute for Global Communications. 5324 SMRSH: Update README for the new Build system. From Tim Pierce 5325 of RootsWeb Genealogical Data Cooperative. 5326 VACATION: Added vacation auto-responder to sendmail distribution. 5327 LIBSMDB: Added abstracted database library. Works with Berkeley 5328 DB 1.85, Berkeley DB 2.X, Berkeley DB 3.X, and NDBM. 5329 Changed Files: 5330 The Build script in the various program subdirectories are 5331 no longer symbolic links. They are now scripts 5332 which execute the actual Build script in 5333 devtools/bin. 5334 All the manual pages are now written against -man and not 5335 -mandoc as they were previously. 5336 Add a simple Makefile to every directory so make instead 5337 of Build will work (unless parameters are 5338 required for Build). 5339 New Directories: 5340 devtools/M4/UNIX 5341 include 5342 libmilter 5343 libsmdb 5344 libsmutil 5345 vacation 5346 Renamed Directories: 5347 BuildTools => devtools 5348 src => sendmail 5349 Deleted Files: 5350 cf/m4/nullrelay.m4 5351 devtools/OS/Linux.ppc 5352 devtools/OS/ReliantUNIX 5353 devtools/OS/SINIX 5354 sendmail/ldap_map.h 5355 New Files: 5356 INSTALL 5357 PGPKEYS 5358 cf/cf/generic-linux.cf 5359 cf/cf/generic-linux.mc 5360 cf/feature/delay_checks.m4 5361 cf/feature/dnsbl.m4 5362 cf/feature/generics_entire_domain.m4 5363 cf/feature/no_default_msa.m4 5364 cf/feature/relay_mail_from.m4 5365 cf/feature/virtuser_entire_domain.m4 5366 cf/mailer/qpage.m4 5367 cf/ostype/bsdi.m4 5368 cf/ostype/hpux11.m4 5369 cf/ostype/openbsd.m4 5370 contrib/bounce-resender.pl 5371 contrib/domainmap.m4 5372 contrib/qtool.8 5373 contrib/qtool.pl 5374 devtools/M4/depend/AIX.m4 5375 devtools/M4/list.m4 5376 devtools/M4/string.m4 5377 devtools/M4/subst_ext.m4 5378 devtools/M4/switch.m4 5379 devtools/OS/Darwin 5380 devtools/OS/GNU 5381 devtools/OS/SINIX.5.43 5382 devtools/OS/SINIX.5.44 5383 devtools/OS/m88k 5384 devtools/bin/find_in_path.sh 5385 mail.local/Makefile 5386 mailstats/Makefile 5387 makemap/Makefile 5388 praliases/Makefile 5389 rmail/Makefile 5390 sendmail/Makefile 5391 sendmail/bf.h 5392 sendmail/bf_portable.c 5393 sendmail/bf_portable.h 5394 sendmail/bf_torek.c 5395 sendmail/bf_torek.h 5396 sendmail/shmticklib.c 5397 sendmail/statusd_shm.h 5398 sendmail/timers.c 5399 sendmail/timers.h 5400 smrsh/Makefile 5401 vacation/Makefile 5402 Renamed Files: 5403 cf/ostype/gnuhurd.m4 => cf/ostype/gnu.m4 5404 sendmail/cdefs.h => include/sendmail/cdefs.h 5405 sendmail/sendmail.hf => sendmail/helpfile 5406 sendmail/mailstats.h => include/sendmail/mailstats.h 5407 sendmail/pathnames.h => include/sendmail/pathnames.h 5408 sendmail/safefile.c => libsmutil/safefile.c 5409 sendmail/snprintf.c => libsmutil/snprintf.c 5410 sendmail/useful.h => include/sendmail/useful.h 5411 cf/ostype/solaris2.m4 => cf/ostype/solaris2.pre5.m4 5412 Copied Files: 5413 cf/ostype/solaris2.ml.m4 => cf/ostype/solaris2.m4 5414 54158.9.3/8.9.3 1999/02/04 5416 SECURITY: Limit message headers to a maximum of 32K bytes (total 5417 of all headers in a single message) to prevent a denial of 5418 service attack. This limit will be configurable in 8.10. 5419 Problem noted by Michal Zalewski of the "Internet for 5420 Schools" project (IdS). 5421 Prevent segmentation fault on an LDAP lookup if the LDAP map 5422 was closed due to an earlier failure. Problem noted by 5423 Jeff Wasilko of smoe.org. Fix from Booker Bense of 5424 Stanford University and Per Hedeland of Ericsson. 5425 Preserve the order of the MIME headers in multipart messages 5426 when performing the MIME header length check. This 5427 will allow PGP signatures to function properly. Problem 5428 noted by Lars Hecking of University College, Cork, Ireland. 5429 If ruleset 5 rewrote the local address to an :include: directive, 5430 the delivery would fail with an "aliasing/forwarding loop 5431 broken" error. Problem noted by Eric C Hagberg of Morgan 5432 Stanley. Fix from Per Hedeland of Ericsson. 5433 Allow -T to work for bestmx maps. Fix from Aaron Schrab of 5434 ExecPC Internet Systems. 5435 During the transfer of a message in an SMTP transaction, if a 5436 TCP timeout occurs, the message would be properly queued 5437 for later retry but the failure would be logged as 5438 "Illegal Seek" instead of a timeout. Problem noted by 5439 Piotr Kucharski of the Warsaw School of Economics (SGH) 5440 and Carles Xavier Munyoz Baldo of CTV Internet. 5441 Prevent multiple deliveries on a self-referencing alias if the 5442 F=w mailer flag is not set. Problem noted by Murray S. 5443 Kucherawy of Concentric Network Corporation and Per 5444 Hedeland of Ericsson. 5445 Do not strip empty headers but if there is no value and a 5446 default is defined in sendmail.cf, use the default. 5447 Problem noted by Philip Guenther of Gustavus Adolphus 5448 College and Christopher McCrory of Netus, Inc. 5449 Don't inherit information about the sender (notably the full name) 5450 in SMTP (-bs) mode, since this might be called from inetd. 5451 Accept any 3xx reply code in response to DATA command instead of 5452 requiring 354. This change will match the wording to be 5453 published in the updated SMTP specification from the DRUMS 5454 group of the IETF. 5455 Portability: 5456 AIX 4.2.0 or 4.2.1 may become updated by the fileset 5457 bos.rte.net level 4.2.0.2. This introduces the 5458 softlink /usr/lib/libbind.a which should 5459 not be used. It conflicts with the resolver 5460 built into libc.a. "bind" has been removed 5461 from the confLIBSEARCH BuildTools variable. 5462 Users who have installed BIND 8.X will have 5463 to add it back in their site.config.m4 file. 5464 Problem noted by Ole Holm Nielsen of the 5465 Technical University of Denmark. 5466 CRAY TS 10.0.x from Sven Nielsen of San Diego 5467 Supercomputer Center. 5468 Improved LDAP version 3 integration based on input 5469 from Kurt D. Zeilenga of the OpenLDAP Foundation, 5470 John Beck of Sun Microsystems, and Booker Bense 5471 of Stanford University. 5472 Linux doesn't have a standard way to get the timezone 5473 between different releases. Back out the 5474 change in 8.9.2 and don't attempt to derive 5475 a timezone. Problem reported by Igor S. Livshits 5476 of the University of Illinois at Urbana-Champaign 5477 and Michael Dickens of Tetranet Communications. 5478 Reliant UNIX, the new name for SINIX, from Gert-Jan Looy 5479 of Siemens/SNI. 5480 SunOS 5.8 from John Beck of Sun Microsystems. 5481 CONFIG: SCO UnixWare 2.1 and 7.0 need TZ to get the proper 5482 timezone. Problem noted by Petr Lampa of Technical 5483 University of Brno. 5484 CONFIG: Handle <@bestmx-host:user@otherhost> addressing properly 5485 when using FEATURE(bestmx_is_local). Patch from Neil W. 5486 Rickert of Northern Illinois University. 5487 CONFIG: Properly handle source routed and %-hack addresses on 5488 hosts which the mailertable remaps to local:. Patch from 5489 Neil W. Rickert of Northern Illinois University. 5490 CONFIG: Internal fixup of mailertable local: map value. Patch from 5491 Larry Parmelee of Cornell University. 5492 CONFIG: Only add back +detail from host portion of mailer triplet 5493 on local mailer triplets if it was originally +detail. 5494 Patch from Neil W. Rickert of Northern Illinois University. 5495 CONFIG: The bestmx_is_local checking done in check_rcpt would 5496 cause later checks to fail. Patch from Paul J Murphy of 5497 MIDS Europe. 5498 New Files: 5499 BuildTools/OS/CRAYTS.10.0.x 5500 BuildTools/OS/ReliantUNIX 5501 BuildTools/OS/SunOS.5.8 5502 55038.9.2/8.9.2 1998/12/30 5504 SECURITY: Remove five second sleep on accepting daemon connections 5505 due to an accept() failure. This sleep could be used 5506 for a denial of service attack. 5507 Do not silently ignore queue files with names which are too long. 5508 Patch from Bryan Costales of InfoBeat, Inc. 5509 Do not store failures closing an SMTP session in persistent 5510 host status. Reported by Graeme Hewson of Oracle 5511 Corporation UK. 5512 Allow symbolic link forward files if they are in safe directories. 5513 Problem noted by Andreas Schott of the Max Planck Society. 5514 Missing columns in a text map could cause a segmentation fault. 5515 Fix from David Lee of the University of Durham. 5516 Note that for 8.9.X, PrivacyOptions=goaway also includes the 5517 noetrn flag. This is scheduled to change in a future 5518 version of sendmail. Problem noted by Theo Van Dinter of 5519 Chrysalis Symbolic Designa and Alan Brown of Manawatu 5520 Internet Services. 5521 When trying to do host canonification in a Wildcard MX 5522 environment, try an MX lookup of the hostname without the 5523 default domain appended. Problem noted by Olaf Seibert of 5524 Polderland Language & Speech Technology. 5525 Reject SMTP RCPT To: commands with only comments (i.e. 5526 'RCPT TO: (comment)'. Problem noted by Earle Ake of 5527 Hassler Communication Systems Technology, Inc. 5528 Handle any number of %s in the LDAP filter spec. Patch from 5529 Per Hedeland of Ericsson. 5530 Clear ldapx open timeouts even if the map open failed to prevent 5531 a segmentation fault. Patch from Wayne Knowles of the 5532 National Institute of Water & Atmospheric Research Ltd. 5533 Do not syslog envelope clone messages when using address 5534 verification (-bv). Problem noted by Kari Hurtta of the 5535 Finnish Meteorological Institute. 5536 Continue to perform queue runs while in daemon mode even if the 5537 daemon is rejecting connections due to a disk full 5538 condition. Problem noted by JR Oldroyd of TerraNet 5539 Internet Services. 5540 Include full filename on installation of the sendmail.hf file 5541 in case the $HFDIR directory does not exist. Problem 5542 noted by Josef Svitak of Montana State University. 5543 Close all maps when exiting the process with one exception. 5544 Berkeley DB can use internal shared memory locking for 5545 its memory pool. Closing a map opened by another process 5546 will interfere with the shared memory and locks of the 5547 parent process leaving things in a bad state. For 5548 Berkeley DB, only close the map if the current process 5549 is also the one that opened the map, otherwise only close 5550 the map file descriptor. Thanks to Yoseff Francus of 5551 Collective Technologies for volunteering his system for 5552 extended testing. 5553 Avoid null pointer dereference on XDEBUG output for SMTP reply 5554 failures. Problem noted by Carlos Canau of EUnet Portugal. 5555 On mailq and hoststat listings being piped to another program, such 5556 as more, if the pipe closes (i.e., the user quits more), 5557 stop sending output and exit. Patch from Allan E Johannesen 5558 of Worcester Polytechnic Institute. 5559 In accordance with the documentation, LDAP map lookup failures 5560 are now considered temporary failures instead of permanent 5561 failures unless the -t flag is used in the map definition. 5562 Problem noted by Booker Bense of Stanford University and 5563 Eric C. Hagberg of Morgan Stanley. 5564 Fix by one error reporting on long alias names. Problem noted by 5565 H. Paul Hammann of the Missouri Research and Education 5566 Network. 5567 Fix DontBlameSendmail=IncludeFileInUnsafeDirPath behavior. Problem 5568 noted by Barry S. Finkel of Argonne National Laboratory. 5569 When automatically converting from 8 bit to quoted printable MIME, 5570 be careful not to miss a multi-part boundary if that 5571 boundary is preceded by a boundary-like line. Problem 5572 noted by Andreas Raschle of Ansid Inc. Fix from 5573 Kari Hurtta of the Finnish Meteorological Institute. 5574 Avoid bogus reporting of "LMTP tobuf overflow" when the buffer 5575 has enough space for the additional address. Problem 5576 noted by Steve Cliffe of the University of Wollongong. 5577 Fix DontBlameSendmail=FileDeliveryToSymlink behavior. Problem 5578 noted by Alex Vorobiev of Swarthmore College. 5579 If the check_compat ruleset resolves to the $#discard mailer, 5580 discard the current recipient. Unlike check_relay, 5581 check_mail, and check_rcpt, the entire envelope is not 5582 discarded. Problem noted by RZ D. Rahlfs. Fix from 5583 Claus Assmann of Christian-Albrechts-University of Kiel. 5584 Avoid segmentation fault when reading ServiceSwitchFile files with 5585 bogus formatting. Patch from Kari Hurtta of the Finnish 5586 Meteorological Institute. 5587 Support Berkeley DB 2.6.4 API change. 5588 OP.ME: Pages weren't properly output on duplexed printers. Fix 5589 from Matthew Black of CSU Long Beach. 5590 Portability: 5591 Apple Rhapsody from Wilfredo Sanchez of Apple Computer, Inc. 5592 Avoid a clash with IRIX 6.2 getopt.h and the UserDatabase 5593 option structure. Problem noted by Ashley M. 5594 Kirchner of Photo Craft Laboratories, Inc. 5595 Break out IP address to hostname translation for 5596 reading network interface addresses into 5597 class 'w'. Patch from John Kennedy of 5598 Cal State University, Chico. 5599 AIX 4.x use -qstrict with -O3 to prevent the optimized 5600 from changing the semantics of the compiled 5601 program. From Simon Travaglia of the 5602 University of Waikato, New Zealand. 5603 FreeBSD 2.2.2 and later support setusercontext(). From 5604 Peter Wemm of DIALix. 5605 FreeBSD 3.x fix from Peter Wemm of DIALix. 5606 IRIX 5.x has a syslog buffer size of 512 bytes. From 5607 Nao NINOMIYA of Utsunomiya University. 5608 IRIX 6.5 64-bit Build support. 5609 LDAP Version 3 support from John Beck and Ravi Iyer 5610 of Sun Microsystems. 5611 Linux does not implement seteuid() properly. From 5612 John Kennedy of Cal State University, Chico. 5613 Linux timezone type was set improperly. From Takeshi Itoh 5614 of Bits Co., Ltd. 5615 NCR MP-RAS 3.x needs -lresolv for confLIBS. From 5616 Tom J. Moore of NCR. 5617 NeXT 4.x correction to man page path. From J. P. McCann 5618 of E I A. 5619 System V Rel 5.x (a.k.a UnixWare7 w/o BSD-Compatibility Libs) 5620 from Paul Gampe of the Asia Pacific Network 5621 Information Center. 5622 ULTRIX now requires an optimization limit of 970 from 5623 Allan E Johannesen of Worcester Polytechnic 5624 Institute. 5625 Fix extern declaration for sm_dopr(). Fix from Henk 5626 van Oers of Algemeen Nederlands Persbureau. 5627 CONFIG: Catch @hostname,user@anotherhost.domain as relaying. 5628 Problem noted by Mark Rogov of AirMedia, Inc. Fix from 5629 Claus Assmann of Christian-Albrechts-University of Kiel. 5630 CONFIG: Do not refer to http://maps.vix.com/ on RBL rejections as 5631 there are multiple RBL's available and the MAPS RBL may 5632 not be the one in use. Suggested by Alan Brown of 5633 Manawatu Internet Services. 5634 CONFIG: Properly strip route addresses (i.e., @host1:user@host2) 5635 when stripping down a recipient address to check for 5636 relaying. Patch from Claus Assmann of 5637 Christian-Albrechts-University of Kiel and Neil W Rickert 5638 of Northern Illinois University. 5639 CONFIG: Allow the access database to override RBL lookups. Patch 5640 from Claus Assmann of Christian-Albrechts-University of 5641 Kiel. 5642 CONFIG: UnixWare 7 support from Phillip P. Porch of The Porch 5643 Dot Com. 5644 CONFIG: Fixed check for deferred delivery mode warning. Patch 5645 from Claus Assmann of Christian-Albrechts-University of 5646 Kiel and Per Hedeland of Ericsson. 5647 CONFIG: If a recipient using % addressing is used, e.g. 5648 user%site@othersite, and othersite's MX records are now 5649 checked for local hosts if FEATURE(relay_based_on_MX) is 5650 used. Problem noted by Alexander Litvin of Lucky Net Ltd. 5651 Patch from Alexander Litvin of Lucky Net Ltd and 5652 Claus Assmann of Christian-Albrechts-University of Kiel. 5653 MAIL.LOCAL: Prevent warning messages from appearing in the LMTP 5654 stream. Do not allow more than one response per recipient. 5655 MAIL.LOCAL: Handle routed addresses properly when using LMTP. Fix 5656 from John Beck of Sun Microsystems. 5657 MAIL.LOCAL: Properly check for CRLF when using LMTP. Fix from 5658 John Beck of Sun Microsystems. 5659 MAIL.LOCAL: Substitute MAILER-DAEMON for the LMTP empty sender in 5660 the envelope From header. 5661 MAIL.LOCAL: Accept underscores in hostnames in LMTP mode. 5662 Problem noted by Glenn A. Malling of Syracuse University. 5663 MAILSTATS: Document msgsrej and msgsdis fields in the man page. 5664 Problem noted by Richard Wong of Princeton University. 5665 MAKEMAP: Build group list so group writable files are allowed with 5666 the -s flag. Problem noted by Curt Sampson of Internet 5667 Portal Services, Inc. 5668 PRALIASES: Automatically handle alias files created without the 5669 NULL byte at the end of the key. Patch from John Beck of 5670 Sun Microsystems. 5671 PRALIASES: Support Berkeley DB 2.6.4 API change. 5672 New Files: 5673 BuildTools/OS/IRIX64.6.5 5674 BuildTools/OS/UnixWare.5.i386 5675 cf/ostype/unixware7.m4 5676 contrib/smcontrol.pl 5677 src/control.c 5678 56798.9.1/8.9.1 1998/07/02 5680 If both an OS specific site configuration file and a generic 5681 site.config.m4 file existed, only the latter was used 5682 instead of both. Problem noted by Geir Johannessen of 5683 the Norwegian University of Science and Technology. 5684 Fix segmentation fault while converting 8 bit to 7 bit MIME 5685 multipart messages by trying to write to an unopened 5686 file descriptor. Fix from Kari Hurtta of the Finnish 5687 Meteorological Institute. 5688 Do not assume Message: and Text: headers indicate the end of 5689 the header area when parsing MIME headers. Problem noted 5690 by Kari Hurtta of the Finnish Meteorological Institute. 5691 Setting the confMAN#SRC Build variable would only effect the 5692 installation commands. The man pages would still be 5693 built with .0 extensions. Problem noted by Bryan 5694 Costales of InfoBeat, Inc. 5695 Installation of manual pages didn't honor the DESTDIR environment 5696 variable. Problem noted by Bryan Costales of InfoBeat, Inc. 5697 If the check_relay ruleset resolved to the discard mailer, messages 5698 were still delivered. Problem noted by Mirek Luc of NASK. 5699 Mail delivery to files would fail with an Operating System Error 5700 if sendmail was not running as root, i.e., RunAsUser was set. 5701 Problem noted by Leonard N. Zubkoff of Dandelion Digital. 5702 Prevent MinQueueAge from interfering from queued items created 5703 in the future, i.e., if the system clock was set ahead 5704 and then back. Problem noted by Michael Miller of the 5705 University of Natal, Pietermaritzburg. 5706 Do not advertise ETRN support in ESTMP EHLO reply if noetrn is 5707 set in the PrivacyOptions option. Fix from Ted Rule of 5708 Flextech TV. 5709 Log invalid persistent host status file lines instead of 5710 bouncing the message. Problem noted by David Lindes of 5711 DaveLtd Enterprises. 5712 Move creation of empty sendmail.st file from installation to 5713 compilation. Installation may be done from a read-only 5714 mount. Fix from Bryan Costales of InfoBeat, Inc. and Ric 5715 Anderson of the Oasis Research Center, Inc. 5716 Enforce the maximum number of User Database entries limit. Problem 5717 noted by Gary Buchanan of Credence Systems Inc. 5718 Allow dead.letter files in root's home directory. Problem noted 5719 by Anna Ullman of Sun Microsystems. 5720 Program deliveries in forward files could be marked unsafe if 5721 any directory listed in the ForwardPath option did not 5722 exist. Problem noted by Jorg Bielak of Coastal Web Online. 5723 Do not trust the length of the address structure returned by 5724 gethostbyname(). Problem noted by Chris Evans of Oxford 5725 University. 5726 If the SIZE= MAIL From: ESMTP parameter is too large, use the 5727 5.3.4 DSN status code instead of 5.2.2. Similarly, for 5728 non-local deliveries, if the message is larger than the 5729 mailer maximum message size, use 5.3.4 instead of 5.2.3. 5730 Suggested by Antony Bowesman of 5731 Fujitsu/TeaWARE Mail/MIME System. 5732 Portability: 5733 Fix the check for an IP address reverse lookup for 5734 use in $&{client_name} on 64 bit platforms. 5735 From Gilles Gallot of Institut for Development 5736 and Resources in Intensive Scientific computing. 5737 BSD-OS uses .0 for man page extensions. From Jeff Polk 5738 of BSDI. 5739 DomainOS detection for Build. Also, version 10.4 and later 5740 ship a unistd.h. Fixes from Takanobu Ishimura of 5741 PICT Inc. 5742 NeXT 4.x uses /usr/lib/man/cat for its man pages. From 5743 J. P. McCann of E I A. 5744 SCO 4.X and 5.X include NDBM support. From Vlado Potisk 5745 of TEMPEST, Ltd. 5746 CONFIG: Do not pass spoofed PTR results through resolver for 5747 qualification. Problem noted by Michiel Boland of 5748 Digital Valley Internet Professionals; fix from 5749 Kari Hurtta of the Finnish Meteorological Institute. 5750 CONFIG: Do not try to resolve non-DNS hostnames such as UUCP, 5751 BITNET, and DECNET addresses for resolvable senders. 5752 Problem noted by Alexander Litvin of Lucky Net Ltd. 5753 CONFIG: Work around Sun's broken configuration which sends bounce 5754 messages as coming from @@hostname instead of <>. LMTP 5755 would not accept @@hostname. 5756 OP.ME: Corrections to complex sendmail startup script from Rick 5757 Troxel of the National Institutes of Health. 5758 RMAIL: Do not install rmail by default, require 'make force-install' 5759 as this rmail isn't the same as others. Suggested by 5760 Kari Hurtta of the Finnish Meteorological Institute. 5761 New Files: 5762 BuildTools/OS/DomainOS.10.4 5763 57648.9.0/8.9.0 1998/05/19 5765 SECURITY: To prevent users from reading files not normally 5766 readable, sendmail will no longer open forward, :include:, 5767 class, ErrorHeader, or HelpFile files located in unsafe 5768 (i.e., group or world writable) directory paths. Sites 5769 which need the ability to override security can use the 5770 DontBlameSendmail option. See the README file for more 5771 information. 5772 SECURITY: Problems can occur on poorly managed systems, specifically, 5773 if maps or alias files are in world writable directories. 5774 This fixes the change added to 8.8.6 to prevent links in these 5775 world writable directories. 5776 SECURITY: Make sure ServiceSwitchFile option file is not a link if 5777 it is in a world writable directory. 5778 SECURITY: Never pass a tty to a mailer -- if a mailer can get at the 5779 tty it may be able to push bytes back to the senders input. 5780 Unfortunately this breaks -v mode. Problem noted by 5781 Wietse Venema of the Global Security Analysis Lab at 5782 IBM T.J. Watson Research. 5783 SECURITY: Empty group list if DontInitGroups is set to true to 5784 prevent program deliveries from picking up extra group 5785 privileges. Problem reported by Wolfgang Ley of DFN-CERT. 5786 SECURITY: The default value for DefaultUser is now set to the uid and 5787 gid of the first existing user mailnull, sendmail, or daemon 5788 that has a non-zero uid. If none of these exist, sendmail 5789 reverts back to the old behavior of using uid 1 and gid 1. 5790 This is a security problem for Linux which has chosen that 5791 uid and gid for user bin instead of daemon. If DefaultUser 5792 is set in the configuration file, that value overrides this 5793 default. 5794 SECURITY: Since 8.8.7, the check for non-set-user-ID binaries 5795 interfered with setting an alternate group id for the 5796 RunAsUser option. Problem noted by Randall Winchester of 5797 the University of Maryland. 5798 Add support for Berkeley DB 2.X. Based on patch from John Kennedy 5799 of Cal State University, Chico. 5800 Remove support for OLD_NEWDB (pre-1.5 version of Berkeley DB). Users 5801 which previously defined OLD_NEWDB=1 must now upgrade to the 5802 current version of Berkeley DB. 5803 Added support for regular expressions using the new map class regex. 5804 From Jan Krueger of Unix-AG of University of Hannover. 5805 Support for BIND 8.1.1's hesiod for hesiod maps and hesiod 5806 UserDatabases from Randall Winchester of the University 5807 of Maryland. 5808 Allow any shell for user shell on program deliveries on V1 5809 configurations for backwards compatibility on machines which 5810 do not have getusershell(). Fix from John Beck of Sun 5811 Microsystems. 5812 On operating systems which change the process title by reusing the 5813 argument vector memory, sendmail could corrupt memory if the 5814 last argument was either "-q" or "-d". Problem noted by 5815 Frank Langbein of the University of Stuttgart. 5816 Support Local Mail Transfer Protocol (LMTP) between sendmail and 5817 mail.local on the F=z flag. 5818 Macro-expand the contents of the ErrMsgFile. Previously this was 5819 only done if you had magic characters (0x81) to indicate 5820 macro expansion. Now $x will be expanded. This means that 5821 real dollar signs have to be backslash escaped. 5822 TCP Wrappers expects "unknown" in the hostname argument if the 5823 reverse DNS lookup for the incoming connection fails. 5824 Problem noted by Randy Grimshaw of Syracuse University and 5825 Wietse Venema of the Global Security Analysis Lab at 5826 IBM T.J. Watson Research. 5827 DSN success bounces generated from an invocation of sendmail -t 5828 would be sent to both the sender and MAILER-DAEMON. 5829 Problem noted by Claus Assmann of 5830 Christian-Albrechts-University of Kiel. 5831 Avoid "Error 0" messages on delivery mailers which exit with a 5832 valid exit value such as EX_NOPERM. Fix from Andreas Luik 5833 of ISA Informationssysteme GmbH. 5834 Tokenize $&x expansions on right hand side of rules. This eliminates 5835 the need to use tricks like $(dequote "" $&{client_name} $) 5836 to cause the ${client_name} macro to be properly tokenized. 5837 Add the MaxRecipientsPerMessage option: this limits the number of 5838 recipients that will be accepted in a single SMTP 5839 transaction. After this number is reached, sendmail 5840 starts returning "452 Too many recipients" to all RCPT 5841 commands. This can be used to limit the number of recipients 5842 per envelope (in particular, to discourage use of the server 5843 for spamming). Note: a better approach is to restrict 5844 relaying entirely. 5845 Fixed pointer initialization for LDAP lmap struct, fixed -s option 5846 to ldapx map and added timeout for ldap_open call to 5847 avoid hanging sendmail in the event of hung LDAP servers. 5848 Patch from Booker Bense of Stanford University. 5849 Allow multiple -qI, -qR, or -qS queue run limiters. For example, 5850 '-qRfoo -qRbar' would deliver mail to recipients with foo or 5851 bar in their address. Patch from Allan E Johannesen of 5852 Worcester Polytechnic Institute. 5853 The bestmx map will now return a list of the MX servers for a host if 5854 passed a column delimiter via the -z map flag. This can be 5855 used to check if the server is an MX server for the recipient 5856 of a message. This can be used to help prevent relaying. 5857 Patch from Mitchell Blank Jr of Exec-PC. 5858 Mark failures for the *file* mailer and return bounce messages to the 5859 sender for those failures. 5860 Prevent bogus syslog timestamps on errors in sendmail.cf by 5861 preserving the TZ environment variable until TimeZoneSpec 5862 has been determined. Problem noted by Ralf Hildebrandt of 5863 Technical University of Braunschweig. Patch from Per Hedeland 5864 of Ericsson. 5865 Print test input in address test mode when input is not from the tty 5866 when the -v flag is given (i.e., sendmail -bt -v) to make 5867 output easier to decipher. Problem noted by Aidan Nichol 5868 of Procter & Gamble. 5869 The LDAP map -s flag was not properly parsed and the error message 5870 given included the remainder of the arguments instead of 5871 solely the argument in error. Problem noted by Aidan Nichol 5872 of Procter & Gamble. 5873 New DontBlameSendmail option. This option allows administrators to 5874 bypass some of sendmail's file security checks at the expense 5875 of system security. This should only be used if you are 5876 absolutely sure you know the consequences. The available 5877 DontBlameSendmail options are: 5878 Safe 5879 AssumeSafeChown 5880 ClassFileInUnsafeDirPath 5881 ErrorHeaderInUnsafeDirPath 5882 GroupWritableDirPathSafe 5883 GroupWritableForwardFileSafe 5884 GroupWritableIncludeFileSafe 5885 GroupWritableAliasFile 5886 HelpFileinUnsafeDirPath 5887 WorldWritableAliasFile 5888 ForwardFileInGroupWritableDirPath 5889 IncludeFileInGroupWritableDirPath 5890 ForwardFileInUnsafeDirPath 5891 IncludeFileInUnsafeDirPath 5892 ForwardFileInUnsafeDirPathSafe 5893 IncludeFileInUnsafeDirPathSafe 5894 MapInUnsafeDirPath 5895 LinkedAliasFileInWritableDir 5896 LinkedClassFileInWritableDir 5897 LinkedForwardFileInWritableDir 5898 LinkedIncludeFileInWritableDir 5899 LinkedMapInWritableDir 5900 LinkedServiceSwitchFileInWritableDir 5901 FileDeliveryToHardLink 5902 FileDeliveryToSymLink 5903 WriteMapToHardLink 5904 WriteMapToSymLink 5905 WriteStatsToHardLink 5906 WriteStatsToSymLink 5907 RunProgramInUnsafeDirPath 5908 RunWritableProgram 5909 New DontProbeInterfaces option to turn off the inclusion of all the 5910 interface names in $=w on startup. In particular, if you 5911 have lots of virtual interfaces, this option will speed up 5912 startup. However, unless you make other arrangements, mail 5913 sent to those addresses will be bounced. 5914 Automatically create alias databases if they don't exist and 5915 AutoRebuildAliases is set. 5916 Add PrivacyOptions=noetrn flag to disable the SMTP ETRN command. 5917 Suggested by Christophe Wolfhugel of the Institut Pasteur. 5918 Add PrivacyOptions=noverb flag to disable the SMTP VERB command. 5919 When determining the client host name ($&{client_name} macro), do 5920 a forward (A) DNS lookup on the result of the PTR lookup 5921 and compare results. If they differ or if the PTR lookup 5922 fails, &{client_name} will contain the IP address 5923 surrounded by square brackets (e.g., [127.0.0.1]). 5924 New map flag: -Tx appends "x" to lookups that return temporary failure 5925 (i.e, it is like -ax for the temporary failure case, in 5926 contrast to the success case). 5927 New syntax to do limited checking of header syntax. A config line 5928 of the form: 5929 HHeader: $>Ruleset 5930 causes the indicated Ruleset to be invoked on the Header 5931 when read. This ruleset works like the check_* rulesets -- 5932 that is, it can reject mail on the basis of the contents. 5933 Limit the size of the HELO/EHLO parameter to prevent spammers 5934 from hiding their connection information in Received: 5935 headers. 5936 When SingleThreadDelivery is active, deliveries to locked hosts 5937 are skipped. This will cause the delivering process to 5938 try the next MX host or queue the message if no other MX 5939 hosts are available. Suggested by Alexander Litvin. 5940 The [FILE] mailer type now delivers to the file specified in the 5941 A= equate of the mailer definition instead of $u. It also 5942 obeys all of the F= mailer flags such as the MIME 5943 7/8 bit conversion flags. This is useful for defining 5944 a mailer which delivers to the same file regardless of the 5945 recipient (e.g., 'A=FILE /dev/null' to discard unwanted mail). 5946 Do not assume the identity of a remote connection is root@localhost 5947 if the remote connection closes the socket before the 5948 remote identity can be queried. 5949 Change semantics of the F=S mailer flag back to 8.7.5 behavior. 5950 Some mailers, including procmail, require that the real 5951 uid is left unchanged by sendmail. Problem noted by Per 5952 Hedeland of Ericsson. 5953 No longer is the src/obj*/Makefile selected from a large list -- it 5954 is now generated using the information in BuildTools/OS/ -- 5955 some of the details are determined dynamically via 5956 BuildTools/bin/configure.sh. 5957 The other programs in the sendmail distribution -- mail.local, 5958 mailstats, makemap, praliases, rmail, and smrsh -- now use 5959 the new Build method which creates an operating system 5960 specific Makefile using the information in BuildTools. 5961 Make 4xx reply codes to the SMTP MAIL command be non-sticky (i.e., 5962 a failure on one message won't affect future messages to the 5963 same host). This is necessary if the remote host sends 5964 a 451 error if the domain of the sender does not resolve 5965 as is common in anti-spam configurations. Problem noted 5966 by Mitchell Blank Jr of Exec-PC. 5967 New "discard" mailer for check_* rulesets and header checking 5968 rulesets. If one of the above rulesets resolves to the 5969 $#discard mailer, the commands will be accepted but the 5970 message will be completely discarded after it is accepting. 5971 This means that even if only one of the recipients 5972 resolves to the $#discard mailer, none of the recipients 5973 will receive the mail. Suggested by Brian Kantor. 5974 All but the last cloned envelope of a split envelope were queued 5975 instead of being delivered. Problem noted by John Caruso 5976 of CNET: The Computer Network. 5977 Fix deadlock situation in persistent host status file locking. 5978 Syslog an error if a user forward file could not be read due to 5979 an error. Patch from John Beck of Sun Microsystems. 5980 Use the first name returned on machine lookups when canonifying a 5981 hostname via NetInfo. Patch from Timm Wetzel of GWDG. 5982 Clear the $&{client_addr}, $&{client_name}, and $&{client_port} 5983 macros when delivering a bounce message to prevent 5984 rejection by a check_compat ruleset which uses these macros. 5985 Problem noted by Jens Hamisch of AgiX Internetservices GmbH. 5986 If the check_relay ruleset resolves to the the error mailer, the 5987 error in the $: portion of the resolved triplet is used 5988 in the rejection message given to the remote machine. 5989 Suggested by Scott Gifford of The Internet Ramp. 5990 Set the $&{client_addr}, $&{client_name}, and $&{client_port} macros 5991 before calling the check_relay ruleset. Suggested by Scott 5992 Gifford of The Internet Ramp. 5993 Sendmail would get a segmentation fault if a mailer exited with an 5994 exit code of 79. Problem noted by Aaron Schrab of ExecPC 5995 Internet. Fix from Christophe Wolfhugel of the Pasteur 5996 Institute. 5997 Separate snprintf/vsnprintf routines into separate file for use by 5998 mail.local. 5999 Allow multiple map lookups on right hand side, e.g., 6000 R$* $( host $1 $) $| $( passwd $1 $). Patch from 6001 Christophe Wolfhugel of the Pasteur Institute. 6002 Properly generate success DSN messages if requested for aliases 6003 which have owner- aliases. Problem noted by Kari Hurtta 6004 of the Finnish Meteorological Institute. 6005 Properly display delayed-expansion macros ($&{macroname}) in 6006 address test mode (-bt). Problem noted by Bryan Costales 6007 of InfoBeat, Inc. 6008 -qR could sometimes match names incorrectly. Problem noted by 6009 Lutz Euler of Lavielle EDV Systemberatung GmbH & Co. 6010 Include a magic number and version in the StatusFile for the 6011 mailstats command. 6012 Record the number of rejected and discarded messages in the 6013 StatusFile for display by the mailstats command. Patch 6014 from Randall Winchester of the University of Maryland. 6015 IDENT returns where the OSTYPE field equals "OTHER" now list the 6016 user portion as IDENT:username@site instead of 6017 username@site to differentiate the two. Suggested by 6018 Kari Hurtta of the Finnish Meteorological Institute. 6019 Enforce timeout for LDAP queries. Patch from Per Hedeland of 6020 Ericsson. 6021 Change persistent host status filename substitution so '/' is 6022 replaced by ':' instead of '|' to avoid clashes. Also 6023 avoid clashes with hostnames with leading dots. Fix from 6024 Mitchell Blank Jr. of Exec-PC. 6025 If the system lock table is full, only attempt to create a new 6026 queue entry five times before giving up. Previously, it 6027 was attempted indefinitely which could cause the partition 6028 to run out of inodes. Problem noted by Suzie Weigand of 6029 Stratus Computer, Inc. 6030 In verbose mode, warn if the sendmail.cf version is less than the 6031 currently supported version. 6032 Sorting for QueueSortOrder=host is now case insensitive. Patch 6033 from Randall S. Winchester of the University of Maryland. 6034 Properly quote a full name passed via the -F command line option, 6035 the Full-Name: header, or the NAME environment variable if 6036 it contains characters which must be quoted. Problem noted 6037 by Kari Hurtta of the Finnish Meteorological Institute. 6038 Avoid possible race condition that unlocked a mail job before 6039 releasing the transcript file on systems that use flock(2). 6040 In some cases, this might result in a "Transcript Unavailable" 6041 message in error bounces. 6042 Accept SMTP replies which contain only a reply code and no 6043 accompanying text. Problem noted by Fernando Fraticelli of 6044 Digital Equipment Corporation. 6045 Portability: 6046 AIX 4.1 uses int for SOCKADDR_LEN_T from Motonori Nakamura 6047 of Kyoto University. 6048 AIX 4.2 requires <userpw.h> before <usersec.h>. Patch from 6049 Randall S. Winchester of the University of 6050 Maryland. 6051 AIX 4.3 from Valdis Kletnieks of Virginia Tech CNS. 6052 CRAY T3E from Manu Mahonen of Center for Scientific Computing 6053 in Finland. 6054 Digital UNIX now uses statvfs for determining free 6055 disk space. Patch from Randall S. Winchester of 6056 the University of Maryland. 6057 HP-UX 11.x from Richard Allen of Opin Kerfi HF and 6058 Regis McEwen of Progress Software Corporation. 6059 IRIX 64 bit fixes from Kari Hurtta of the Finnish 6060 Meteorological Institute. 6061 IRIX 6.2 configuration fix for mail.local from Michael Kyle 6062 of CIC/Advanced Computing Laboratory. 6063 IRIX 6.5 from Thomas H Jones II of SGI. 6064 IRIX 6.X load average code from Bob Mende of SGI. 6065 QNX from Glen McCready <glen@qnx.com>. 6066 SCO 4.2 and 5.x use /usr/bin instead of /usr/ucb for links 6067 to sendmail. Install with group bin instead of kmem 6068 as kmem does not exist. From Guillermo Freige of 6069 Gobernacion de la Pcia de Buenos Aires and Paul 6070 Fischer of BTG, Inc. 6071 SunOS 4.X does not include memmove(). Patch from 6072 Per Hedeland of Ericsson. 6073 SunOS 5.7 includes getloadavg() function for determining 6074 load average. Patch from John Beck of Sun 6075 Microsystems. 6076 CONFIG: Increment version number of config file. 6077 CONFIG: add DATABASE_MAP_TYPE to set the default type of database 6078 map for the various maps. The default is hash. Patch from 6079 Robert Harker of Harker Systems. 6080 CONFIG: new confEBINDIR m4 variable for defining the executable 6081 directory for certain programs. 6082 CONFIG: new FEATURE(local_lmtp) to use the new LMTP support for 6083 local mail delivery. By the default, /usr/libexec/mail.local 6084 is used. This is expected to be the mail.local shipped 6085 with 8.9 which is LMTP capable. The path is based on the 6086 new confEBINDIR m4 variable. 6087 CONFIG: Use confEBINDIR in determining path to smrsh for 6088 FEATURE(smrsh). Note that this changes the default from 6089 /usr/local/etc/smrsh to /usr/libexec/smrsh. To obtain the 6090 old path for smrsh, use FEATURE(smrsh, /usr/local/etc/smrsh). 6091 CONFIG: DOMAIN(generic) changes the default confFORWARD_PATH to 6092 include $z/.forward.$w+$h and $z/.forward+$h which allow 6093 the user to setup different .forward files for 6094 user+detail addressing. 6095 CONFIG: add confMAX_RCPTS_PER_MESSAGE, confDONT_PROBE_INTERFACES, 6096 and confDONT_BLAME_SENDMAIL to set MaxRecipientsPerMessage, 6097 DontProbeInterfaces, and DontBlameSendmail options. 6098 CONFIG: by default do not allow relaying (that is, accepting mail 6099 from outside your domain and sending it to another host 6100 outside your domain). 6101 CONFIG: new FEATURE(promiscuous_relay) to allow mail relaying from 6102 any site to any site. 6103 CONFIG: new FEATURE(relay_entire_domain) allows any host in your 6104 domain as defined by the 'm' class ($=m) to relay. 6105 CONFIG: new FEATURE(relay_based_on_MX) to allow relaying based on 6106 the MX records of the host portion of an incoming recipient. 6107 CONFIG: new FEATURE(access_db) which turns on the access database 6108 feature. This database gives you the ability to allow 6109 or refuse to accept mail from specified domains for 6110 administrative reasons. By default, names that are listed 6111 as "OK" in the access db are domain names, not host names. 6112 CONFIG: new confCR_FILE m4 variable for defining the name of the file 6113 used for class 'R'. Defaults to /etc/mail/relay-domains. 6114 CONFIG: new command RELAY_DOMAIN(domain) and RELAY_DOMAIN_FILE(file) 6115 to add items to class 'R' ($=R) for hosts allowed to relay. 6116 CONFIG: new FEATURE(relay_hosts_only) to change the behavior 6117 of FEATURE(access_db) and class 'R' to lookup individual 6118 host names only. 6119 CONFIG: new FEATURE(loose_relay_check). Normally, if a recipient 6120 using % addressing is used, e.g. user%site@othersite, 6121 and othersite is in class 'R', the check_rcpt ruleset 6122 will strip @othersite and recheck user@site for relaying. 6123 This feature changes that behavior. It should not be 6124 needed for most installations. 6125 CONFIG: new FEATURE(relay_local_from) to allow relaying if the 6126 domain portion of the mail sender is a local host. This 6127 should only be used if absolutely necessary as it opens 6128 a window for spammers. Patch from Randall S. Winchester of 6129 the University of Maryland. 6130 CONFIG: new FEATURE(blacklist_recipients) turns on the ability to 6131 block incoming mail destined for certain recipient 6132 usernames, hostnames, or addresses. 6133 CONFIG: By default, MAIL FROM: commands in the SMTP session will be 6134 refused if the host part of the argument to MAIL FROM: cannot 6135 be located in the host name service (e.g., DNS). 6136 CONFIG: new FEATURE(accept_unresolvable_domains) accepts 6137 unresolvable hostnames in MAIL FROM: SMTP commands. 6138 CONFIG: new FEATURE(accept_unqualified_senders) accepts 6139 MAIL FROM: senders which do not include a domain. 6140 CONFIG: new FEATURE(rbl) Turns on rejection of hosts found in the 6141 Realtime Blackhole List. You can specify the RBL name 6142 server to contact by specifying it as an optional argument. 6143 The default is rbl.maps.vix.com. For details, see 6144 http://maps.vix.com/rbl/. 6145 CONFIG: Call Local_check_relay, Local_check_mail, and 6146 Local_check_rcpt from check_relay, check_mail, and 6147 check_rcpt. Users with local rulesets should place the 6148 rules using LOCAL_RULESETS. If a Local_check_* ruleset 6149 returns $#OK, the message is accepted. If the ruleset 6150 returns a mailer, the appropriate action is taken, else 6151 the return of the ruleset is ignored. 6152 CONFIG: CYRUS_MAILER_FLAGS now includes the /:| mailer flags by 6153 default to support file, :include:, and program deliveries. 6154 CONFIG: Remove the default for confDEF_USER_ID so the binary can 6155 pick the proper default value. See the SECURITY note 6156 above for more information. 6157 CONFIG: FEATURE(nodns) now warns the user that the feature is a 6158 no-op. Patch from Kari Hurtta of the Finnish 6159 Meteorological Institute. 6160 CONFIG: OSTYPE(osf1) now sets DefaultUser (confDEF_USER_ID) to 6161 daemon since DEC's /bin/mail will drop the envelope 6162 sender if run as mailnull. See the Digital UNIX section 6163 of src/README for more information. Problem noted by 6164 Kari Hurtta of the Finnish Meteorological Institute. 6165 CONFIG: .cf files are now stored in the same directory with the 6166 .mc files instead of in the obj directory. 6167 CONFIG: New options confSINGLE_LINE_FROM_HEADER, 6168 confALLOW_BOGUS_HELO, and confMUST_QUOTE_CHARS for 6169 setting SingleLineFromHeader, AllowBogusHELO, and 6170 MustQuoteChars respectively. 6171 MAIL.LOCAL: support -l flag to run LMTP on stdin/stdout. This 6172 SMTP-like protocol allows detailed reporting of delivery 6173 status on a per-user basis. Code donated by John Myers of 6174 CMU (now of Netscape). 6175 MAIL.LOCAL: HP-UX support from Randall S. Winchester of the 6176 University of Maryland. NOTE: mail.local is not 6177 compatible with the stock HP-UX mail format. Be sure to 6178 read mail.local/README. 6179 MAIL.LOCAL: Prevent other mail delivery agents from stealing a 6180 mailbox lock. Patch from Randall S. Winchester of the 6181 University of Maryland. 6182 MAIL.LOCAL: glibc portability from John Kennedy of Cal State 6183 University, Chico. 6184 MAIL.LOCAL: IRIX portability from Kari Hurtta of the Finnish 6185 Meteorological Institute. 6186 MAILSTATS: Display the number of rejected and discarded messages 6187 in the StatusFile. Patch from Randall Winchester of the 6188 University of Maryland. 6189 MAKEMAP: New -s flag to ignore safety checks on database map files 6190 such as linked files in world writable directories. 6191 MAKEMAP: Add support for Berkeley DB 2.X. Remove OLD_NEWDB support. 6192 PRALIASES: Add support for Berkeley DB 2.X. 6193 PRALIASES: Do not automatically include NDBM support. Problem 6194 noted by Ralf Hildebrandt of the Technical University of 6195 Braunschweig. 6196 RMAIL: Improve portability for other platforms. Patches from 6197 Randall S. Winchester of the University of Maryland and 6198 Kari Hurtta of the Finnish Meteorological Institute. 6199 Changed Files: 6200 src/Makefiles/Makefile.* files have been modified to use 6201 the new build mechanism and are now BuildTools/OS/*. 6202 src/makesendmail changed to symbolic link to src/Build. 6203 New Files: 6204 BuildTools/M4/header.m4 6205 BuildTools/M4/depend/BSD.m4 6206 BuildTools/M4/depend/CC-M.m4 6207 BuildTools/M4/depend/NCR.m4 6208 BuildTools/M4/depend/Solaris.m4 6209 BuildTools/M4/depend/X11.m4 6210 BuildTools/M4/depend/generic.m4 6211 BuildTools/OS/AIX.4.2 6212 BuildTools/OS/AIX.4.x 6213 BuildTools/OS/CRAYT3E.2.0.x 6214 BuildTools/OS/HP-UX.11.x 6215 BuildTools/OS/IRIX.6.5 6216 BuildTools/OS/NEXTSTEP.4.x 6217 BuildTools/OS/NeXT.4.x 6218 BuildTools/OS/NetBSD.8.3 6219 BuildTools/OS/QNX 6220 BuildTools/OS/SunOS.5.7 6221 BuildTools/OS/dcosx.1.x.NILE 6222 BuildTools/README 6223 BuildTools/Site/README 6224 BuildTools/bin/Build 6225 BuildTools/bin/configure.sh 6226 BuildTools/bin/find_m4.sh 6227 BuildTools/bin/install.sh 6228 Makefile 6229 cf/cf/Build 6230 cf/cf/generic-hpux10.cf 6231 cf/feature/accept_unqualified_senders.m4 6232 cf/feature/accept_unresolvable_domains.m4 6233 cf/feature/access_db.m4 6234 cf/feature/blacklist_recipients.m4 6235 cf/feature/loose_relay_check.m4 6236 cf/feature/local_lmtp.m4 6237 cf/feature/promiscuous_relay.m4 6238 cf/feature/rbl.m4 6239 cf/feature/relay_based_on_MX.m4 6240 cf/feature/relay_entire_domain.m4 6241 cf/feature/relay_hosts_only.m4 6242 cf/feature/relay_local_from.m4 6243 cf/ostype/qnx.m4 6244 contrib/doublebounce.pl 6245 mail.local/Build 6246 mail.local/Makefile.m4 6247 mail.local/README 6248 mailstats/Build 6249 mailstats/Makefile.m4 6250 makemap/Build 6251 makemap/Makefile.m4 6252 praliases/Build 6253 praliases/Makefile.m4 6254 rmail/Build 6255 rmail/Makefile.m4 6256 rmail/rmail.0 6257 smrsh/Build 6258 smrsh/Makefile.m4 6259 src/Build 6260 src/Makefile.m4 6261 src/snprintf.c 6262 Deleted Files: 6263 cf/cf/Makefile (replaced by Makefile.dist) 6264 mail.local/Makefile 6265 mail.local/Makefile.dist 6266 mailstats/Makefile 6267 mailstats/Makefile.dist 6268 makemap/Makefile 6269 makemap/Makefile.dist 6270 praliases/Makefile 6271 praliases/Makefile.dist 6272 rmail/Makefile 6273 smrsh/Makefile 6274 smrsh/Makefile.dist 6275 src/Makefile 6276 src/Makefiles/Makefile.AIX.4 (split into AIX.4.x and AIX.4.2) 6277 src/Makefiles/Makefile.SMP_DC.OSx.NILE 6278 (renamed BuildTools/OS/dcosx.1.x.NILE) 6279 src/Makefiles/Makefile.Utah (obsolete platform) 6280 Renamed Files: 6281 READ_ME => README 6282 cf/cf/Makefile.dist => Makefile 6283 cf/cf/obj/* => cf/cf/* 6284 src/READ_ME => src/README 6285 62868.8.8/8.8.8 1997/10/24 6287 If the check_relay ruleset failed, the relay= field was logged 6288 incorrectly. Problem noted by Kari Hurtta of the Finnish 6289 Meteorological Institute. 6290 If /usr/tmp/dead.letter already existed, sendmail could not 6291 add additional bounces to it. Problem noted by Thomas J. 6292 Arseneault of SRI International. 6293 If an SMTP mailer used a non-standard port number for the outgoing 6294 connection, it would be displayed incorrectly in verbose mode. 6295 Problem noted by John Kennedy of Cal State University, Chico. 6296 Log the ETRN parameter specified by the client before altering them 6297 to internal form. Suggested by Bob Kupiec of GES-Verio. 6298 EXPN and VRFY SMTP commands on malformed addresses were logging as 6299 User unknown with bogus delay= values. Change them to log 6300 the same as compliant addresses. Problem noted by Kari E. 6301 Hurtta of the Finnish Meteorological Institute. 6302 Ignore the debug resolver option unless using sendmail debug trace 6303 option for resolver. Problem noted by Greg Nichols of Wind 6304 River Systems. 6305 If SingleThreadDelivery was enabled and the remote server returned a 6306 protocol error on the DATA command, the connection would be 6307 closed but the persistent host status file would not be 6308 unlocked so other sendmail processes could not deliver to 6309 that host. Problem noted by Peter Wemm of DIALix. 6310 If queueing up a message due to an expensive mailer, don't increment 6311 the number of delivery attempts or set the last delivery 6312 attempt time so the message will be delivered on the next 6313 queue run regardless of MinQueueAge. Problem noted by 6314 Brian J. Coan of the Institute for Global Communications. 6315 Authentication warnings of "Processed from queue _directory_" and 6316 "Processed by _username_ with -C _filename_" would be logged 6317 with the incorrect timestamp. Problem noted by Kari E. Hurtta 6318 of the Finnish Meteorological Institute. 6319 Use a better heuristic for detecting GDBM. 6320 Log null connections on dropped connections. Problem noted by 6321 Jon Lewis of Florida Digital Turnpike. 6322 If class dbm maps are rebuilt, sendmail will now detect this and 6323 reopen the map. Previously, they could give stale 6324 results during a single message processing (but would 6325 recover when the next message was received). Fix from 6326 Joe Pruett of Q7 Enterprises. 6327 Do not log failures such as "User unknown" on -bv or SMTP VRFY 6328 requests. Problem noted by Kari E. Hurtta of the 6329 Finnish Meteorological Institute. 6330 Do not send a bounce message back to the sender regarding bad 6331 recipients if the SMTP connection is dropped before the 6332 message is accepted. Problem noted by Kari E. Hurtta of the 6333 Finnish Meteorological Institute. 6334 Use "localhost" instead of "[UNIX: localhost]" when connecting to 6335 sendmail via a UNIX pipe. This will allow rulesets using 6336 $&{client_name} to process without sending the string through 6337 dequote. Problem noted by Alan Barrett of Internet Africa. 6338 A combination of deferred delivery mode, a double bounce situation, 6339 and the inability to save a bounce message to 6340 /var/tmp/dead.letter would cause sendmail to send a bounce 6341 to postmaster but not remove the offending envelope from the 6342 queue causing it to create a new bounce message each time the 6343 queue was run. Problem noted by Brad Doctor of Net Daemons 6344 Associates. 6345 Remove newlines from hostname information returned via DNS. There are 6346 no known security implications of newlines in hostnames as 6347 sendmail filters newlines in all vital areas; however, this 6348 could cause confusing error messages. 6349 Starting with sendmail 8.8.6, mail sent with the '-t' option would be 6350 rejected if any of the specified addresses were bad. This 6351 behavior was modified to only reject the bad addresses and not 6352 the entire message. Problem noted by Jozsef Hollosi of 6353 SuperNet, Inc. 6354 Use Timeout.fileopen when delivering mail to a file. Suggested by 6355 Bryan Costales of InfoBeat, Inc. 6356 Display the proper Final-Recipient on DSN messages for non-SMTP 6357 mailers. Problem noted by Kari E. Hurtta of the 6358 Finnish Meteorological Institute. 6359 An error in calculating the available space in the list of addresses 6360 for logging deliveries could cause an address to be silently 6361 dropped. 6362 Include the initial user environment if sendmail is restarted via 6363 a HUP signal. This will give room for the process title. 6364 Problem noted by Jon Lewis of Florida Digital Turnpike. 6365 Mail could be delivered without a body if the machine does not 6366 support flock locking and runs out of processes during 6367 delivery. Fix from Chuck Lever of the University of Michigan. 6368 Drop recipient address from 251 and 551 SMTP responses per RFC 821. 6369 Problem noted by Kari E. Hurtta of the Finnish Meteorological 6370 Institute. 6371 Make sure non-rebuildable database maps are opened before the 6372 rebuildable maps (i.e., alias files) in case the database maps 6373 are needed for verifying the left hand side of the aliases. 6374 Problem noted by Lloyd Parkes of Victoria University. 6375 Make sure sender RFC822 source route addresses are alias expanded for 6376 bounce messages. Problem noted by Juergen Georgi of 6377 RUS University of Stuttgart. 6378 Minor lint fixes. 6379 Return a temporary error instead of a permanent error if an LDAP map 6380 search returns an error. This will allow sequenced maps which 6381 use other LDAP servers to be checked. Fix from Booker Bense 6382 of Stanford University. 6383 When automatically converting from quoted printable to 8bit text do 6384 not pad bare linefeeds with a space. Problem noted by Theo 6385 Nolte of the University of Technology Aachen, Germany. 6386 Portability: 6387 Non-standard C compilers may have had a problem compiling 6388 conf.c due to a standard C external declaration of 6389 setproctitle(). Problem noted by Ted Roberts of 6390 Electronic Data Systems. 6391 AUX: has a broken O_EXCL implementation. Reported by Jim 6392 Jagielski of jaguNET Access Services. 6393 BSD/OS: didn't compile if HASSETUSERCONTEXT was defined. 6394 Digital UNIX: Digital UNIX (and possibly others) moves 6395 loader environment variables into the loader memory 6396 area. If one of these environment variables (such as 6397 LD_LIBRARY_PATH) was the last environment variable, 6398 an invalid memory address would be used by the process 6399 title routine causing memory corruption. Problem 6400 noted by Sam Hartman of Mesa Internet Systems. 6401 GNU libc: uses an enum for _PC_CHOWN_RESTRICTED which caused 6402 chownsafe() to always return 0 even if the OS does 6403 not permit file giveaways. Problem noted by 6404 Yasutaka Sumi of The University of Tokyo. 6405 IRIX6: Syslog buffer size set to 512 bytes. Reported by 6406 Gerald Rinske of Siemens Business Services VAS. 6407 Linux: Pad process title with NULLs. Problem noted by 6408 Jon Lewis of Florida Digital Turnpike. 6409 SCO OpenServer 5.0: SIOCGIFCONF ioctl call returns an 6410 incorrect value for the number of interfaces. 6411 Problem noted by Chris Loelke of JetStream Internet 6412 Services. 6413 SINIX: Update for Makefile and syslog buffer size from Gerald 6414 Rinske of Siemens Business Services VAS. 6415 Solaris: Make sure HASGETUSERSHELL setting for SunOS is not 6416 used on a Solaris machine. Problem noted by 6417 Stephen Ma of Jtec Pty Limited. 6418 CONFIG: SINIX: Update from Gerald Rinske of Siemens Business 6419 Services VAS. 6420 MAKEMAP: Use a better heuristic for detecting GDBM. 6421 CONTRIB: expn.pl: Updated version from the author, David Muir Sharnoff. 6422 OP.ME: Document the F=i mailer flag. Problem noted by Per Hedeland of 6423 Ericsson. 6424 64258.8.7/8.8.7 1997/08/03 6426 If using Berkeley DB on systems without O_EXLOCK (open a file with 6427 an exclusive lock already set -- i.e., almost all systems 6428 except 4.4-BSD derived systems), the initial attempt at 6429 rebuilding aliases file if the database didn't already 6430 exist would fail. Patch from Raymund Will of LST Software 6431 GmbH. 6432 Bogus incoming SMTP commands would reset the SMTP conversation. 6433 Problem noted by Fredrik J�nsson of the Royal Institute 6434 of Technology, Stockholm. 6435 Since TCP Wrappers includes setenv(), unsetenv(), and putenv(), 6436 some environments could give "multiple definitions" for these 6437 routines during compilation. If using TCP Wrappers, assume 6438 that these routines are included as though they were in the 6439 C library. Patch from Robert La Ferla. 6440 When a NEWDB database map was rebuilt at the same time it was being 6441 used by a queue run, the maps could be left locked for the 6442 duration of the queue run, causing other processes to hang. 6443 Problem noted by Kendall Libby of Shore.NET. 6444 In some cases, NoRecipientAction=add-bcc was being ignored, so the 6445 mail was passed on without any recipient header. This could 6446 cause problems downstream. Problem noted by Xander Jansen 6447 of SURFnet ExpertiseCentrum. 6448 Give error when GDBM is used with sendmail. GDBM's locking and 6449 linking of the .dir and .pag files interferes with sendmail's 6450 locking and security checks. Problems noted by Fyodor 6451 Yarochkin of the Kyrgyz Republic FreeNet. 6452 Don't fsync qf files if SuperSafe option is not set. 6453 Avoid extra calls to gethostbyname for addresses for which a 6454 gethostbyaddr found no value. Also, ignore any returns 6455 from gethostbyaddr that look like a dotted quad. 6456 If PTR lookup fails when looking up an SMTP peer, don't tag it as 6457 "may be forged", since at the network level we pretty much 6458 have to assume that the information is good. 6459 In some cases, errors during an SMTP session could leave files 6460 open or locked. 6461 Better handling of missing file descriptors (0, 1, 2) on startup. 6462 Better handling of non-set-user-ID binaries -- avoids certain obnoxious 6463 errors during testing. 6464 Errors in file locking of NEWDB maps had the incorrect file name 6465 printed in the error message. 6466 If the AllowBogusHELO option were set and an EHLO with a bad or 6467 missing parameter were issued, the EHLO behaved like a HELO. 6468 Load limiting never kicked in for incoming SMTP transactions if the 6469 DeliveryMode=background and any recipient was an alias or 6470 had a .forward file. From Nik Conwell of Boston University. 6471 On some non-Posix systems, the decision of whether chown(2) permits 6472 file giveaway was undefined. From Tetsu Ushijima of the 6473 Tokyo Institute of Technology. 6474 Fix race condition that could cause the body of a message to be 6475 lost (so only the header was delivered). This only occurs 6476 on systems that do not use flock(2), and only when a queue 6477 runner runs during a critical section in another message 6478 delivery. Based on a patch from Steve Schweinhart of 6479 Results Computing. 6480 If a qf file was found in a mail queue directory that had a problem 6481 (wrong ownership, bad format, etc.) and the file name was 6482 exactly MAXQFNAME bytes long, then instead of being tried 6483 once, it would be tried on every queue run. Problem noted 6484 by Bryan Costales of Mercury Mail. 6485 If the system supports an st_gen field in the status structure, 6486 include it when reporting that a file has changed after open. 6487 This adds a new compile flag, HAS_ST_GEN (0/1 option). 6488 This out to be checked as well as reported, since it is 6489 theoretically possible for an attacker to remove a file after 6490 it is opened and replace it with another file that has the 6491 same i-number, but some filesystems (notably AFS) return 6492 garbage in this field, and hence always look like the file 6493 has changed. As a practical matter this is not a security 6494 problem, since the files can be neither hard nor soft links, 6495 and on no filesystem (that I am aware of) is it possible to 6496 have two files on the same filesystem with the same i-number 6497 simultaneously. 6498 Delete the root Makefile from the distribution -- it is only for 6499 use internally, and does not work at customer sites. 6500 Fix botch that caused the second MAIL FROM: command in a single 6501 transaction to clear the entire transaction. Problem 6502 noted by John Kennedy of Cal State University, Chico. 6503 Work properly on machines that have _PATH_VARTMP defined without 6504 a trailing slash. (And a pox on vendors that decide to 6505 ignore the established conventions!) Problem noted by 6506 Gregory Neil Shapiro of WPI. 6507 Internal changes to make it easier to add another protocol family 6508 (intended for IPv6). Patches are from John Kennedy of 6509 CSU Chico. 6510 In certain cases, 7->8 bit MIME decoding of Base64 text could leave 6511 an extra space at the beginning of some lines. Problem 6512 noted by Charles Karney of Princeton University; fix based 6513 on a patch from Christophe Wolfhugel. 6514 Portability: 6515 Allow _PATH_VENDOR_CF to be set in Makefile for consistency 6516 with the _Sendmail_ book, 2nd edition. Note that 6517 the book is actually wrong: _PATH_SENDMAILCF should 6518 be used instead. 6519 AIX 3.x: Include <sys/select.h>. Patch from Gene Rackow 6520 of Argonne National Laboratory. 6521 OpenBSD from from Paul DuBois of the University of Wisconsin. 6522 RISC/os 4.0 from Paul DuBois of the University of Wisconsin. 6523 SunOS: Include <memory.h> to fix warning from util.c. From 6524 James Aldridge of EUnet Ltd. 6525 Solaris: Change STDIR (location of status file) to /etc/mail 6526 in Makefiles. 6527 Linux, Dynix, UNICOS: Remove -DNDBM and -lgdbm from 6528 Makefiles. Use NEWDB on Linux instead. 6529 NCR MP-RAS 3.x with STREAMware TCP/IP: SIOCGIFNUM ioctl 6530 exists but behaves differently than other OSes. 6531 Add SIOCGIFNUM_IS_BROKEN compile flag to get 6532 around the problem. Problem noted by Tom Moore of 6533 NCR Corp. 6534 HP-UX 9.x: fix compile warnings for old select API. Problem 6535 noted by Tom Smith of Digital Equipment Corp. 6536 UnixWare 2.x: compile warnings on offsetof macro. Problem 6537 noted by Tom Good of the Community Access Information 6538 Resource Network 6539 SCO 4.2: compile problems caused by a change in the type of 6540 the "length" parameters passed to accept, getpeername, 6541 getsockname, and getsockopt. Adds new compile flags 6542 SOCKADDR_SIZE_T and SOCKOPT_SIZE_T. Problem reported 6543 by Tom Good of St. Vincent's North Richmond Community 6544 Mental Health Center Residential Services. 6545 AIX 4: Use size_t for SOCKADDR_SIZE_T and SOCKOPT_SIZE_T. 6546 Suggested by Brett Hogden of Rochester Gas & Electric 6547 Corp. 6548 Linux: avoid compile problem for versions of <setjmp.h> that 6549 #define both setjmp and longjmp. Problem pointed out 6550 by J.R. Oldroyd of TerraNet. 6551 CONFIG: SCO UnixWare 2.1: Support for OSTYPE(sco-uw-2.1) 6552 from Christopher Durham of SCO. 6553 CONFIG: NEXTSTEP: define confCW_FILE to 6554 /etc/sendmail/sendmail.cw to match the usual 6555 configuration. Patch from Dennis Glatting of 6556 PlainTalk. 6557 CONFIG: MAILER(fax) called a program that hasn't existed for a long 6558 time. Convert to use the HylaFAX 4.0 conventions. Suggested 6559 by Harry Styron. 6560 CONFIG: Improve sample anti-spam rulesets in cf/cf/knecht.mc. These 6561 are the rulesets in use on sendmail.org. 6562 MAKEMAP: give error on GDBM files. 6563 MAIL.LOCAL: Make error messages a bit more explicit, for example, 6564 telling more details on what actually changed when "file 6565 changed after open". 6566 CONTRIB: etrn.pl: Ignore comments in Fw files. Support multiple Fw 6567 files. 6568 CONTRIB: passwd-to-alias.pl: Handle 8 bit characters and '-'. 6569 NEW FILES: 6570 src/Makefiles/Makefile.OpenBSD 6571 src/Makefiles/Makefile.RISCos.4_0 6572 test/t_exclopen.c 6573 cf/ostype/sco-uw-2.1.m4 6574 DELETED FILES: 6575 Makefile 6576 65778.8.6/8.8.6 1997/06/14 6578 ************************************************************* 6579 * The extensive assistance of Gregory Neil Shapiro of WPI * 6580 * in preparing this release is gratefully appreciated. * 6581 * Sun Microsystems has also provided resources toward * 6582 * continued sendmail development. * 6583 ************************************************************* 6584 SECURITY: A few systems allow an open with the O_EXCL|O_CREAT open 6585 mode bits set to create a file that is a symbolic link that 6586 points nowhere. This makes it possible to create a root 6587 owned file in an arbitrary directory by inserting the symlink 6588 into a writable directory after the initial lstat(2) check 6589 determined that the file did not exist. The only verified 6590 example of a system having these odd semantics for O_EXCL 6591 and symbolic links was HP-UX prior to version 9.07. Most 6592 systems do not have the problem, since a exclusive create 6593 of a file disallows symbolic links. Systems that have been 6594 verified to NOT have the problem include AIX 3.x, *BSD, 6595 DEC OSF/1, HP-UX 9.07 and higher, Linux, SunOS, Solaris, 6596 and Ultrix. This is a potential exposure on systems that 6597 have this bug and which do not have a MAILER-DAEMON alias 6598 pointing at a legitimate account, since this will cause old 6599 mail to be dropped in /var/tmp/dead.letter. 6600 SECURITY: Problems can occur on poorly managed systems, specifically, 6601 if maps or alias files are in world writable directories. 6602 If your system has alias maps in writable directories, it 6603 is potentially possible for an attacker to replace the .db 6604 (or .dir and .pag) files by symbolic links pointing at 6605 another database; this can be used either to expose 6606 information (e.g., by pointing an alias file at /etc/spwd.db 6607 and probing for accounts), or as a denial-of-service attack 6608 (by trashing the password database). The fix disallows 6609 symbolic links entirely when rebuilding alias files or on 6610 maps that are in writable directories, and always warns on 6611 writable directories; 8.9 will probably consider writable 6612 directories to be fatal errors. This does not represent an 6613 exposure on systems that have alias files in unwritable 6614 system directories. 6615 SECURITY: disallow .forward or :include: files that are links (hard 6616 or soft) if the parent directory (or any directory in the 6617 path) is writable by anyone other than the owner. This is 6618 similar to the previous case for user files. This change 6619 should not affect most systems, but is necessary to prevent 6620 an attacker who can write the directory from pointing such 6621 files at other files that are readable only by the owner. 6622 SECURITY: Tighten safechown rules: many systems will say that they 6623 have a safe (restricted to root) chown even on files that 6624 are mounted from another system that allows owners to give 6625 away files. The new rules are very strict, trusting file 6626 ownership only in those few cases where the system has 6627 been verified to be at least as paranoid as necessary. 6628 However, it is possible to relax the rules to partially 6629 trust the ownership if the directory path is not world or 6630 group writable. This might allow someone who has a legitimate 6631 :include: file (referenced directly from /etc/aliases) to 6632 become another non-root user if the :include: file is in a 6633 non-writable directory on an NFS-mounted filesystem where 6634 the local system says that giveaway is denied but it is 6635 actually permitted. I believe this to be a very small set 6636 of cases. If in doubt, do not point :include: aliases at 6637 NFS-mounted filesystems. 6638 SECURITY: When setting a numeric group id using the RunAsUser option 6639 (e.g., "O RunAsUser=10:20", the group id would not be set. 6640 Implicit group ids (e.g., "O RunAsUser=mailnull") or alpha 6641 group ids (e.g., "O RunAsUser=mailuser:mailgrp") worked fine. 6642 The user id was still set properly. Problem noted by Uli 6643 Pralle of the Technical University of Berlin. 6644 Save the initial gid set for use when checking for if the 6645 PrivacyOptions=restrictmailq option is set. Problem reported 6646 by Wolfgang Ley of DFN-CERT. 6647 Make 55x reply codes to the SMTP DATA-"." be non-sticky (i.e., a 6648 failure on one message won't affect future messages to the 6649 same host). 6650 IP source route printing had an "off by one" error that would 6651 affect any options that came after the route option. Patch 6652 from Theo de Raadt. 6653 The "Message is too large" error didn't successfully bounce the error 6654 back to the sender. Problem reported by Stephen More of 6655 PSI; patch from Gregory Neil Shapiro of WPI. 6656 Change SMTP status code 553 to map into Extended code 5.1.0 (instead 6657 of 5.1.3); it apparently gets used in multiple ways. 6658 Suggested by John Myers of Portola Communications. 6659 Fix possible extra null byte generated during collection if errors 6660 occur at the beginning of the stream. Patch contributed by 6661 Andrey A. Chernov and Gregory Neil Shapiro. 6662 Code changes to avoid possible reentrant call of malloc/free within 6663 a signal handler. Problem noted by John Beck of Sun 6664 Microsystems. 6665 Move map initialization to be earlier so that check_relay ruleset 6666 will have the latest version of the map data. Problem noted 6667 by Paul Forgey of Metainfo; patch from Gregory Neil Shapiro. 6668 If there are fatal errors during the collection phase (e.g., message 6669 too large) don't send the bogus message. 6670 Avoid "cannot open xfAAA00000" messages when sending to aliases that 6671 have errors and have owner- aliases. Problem noted by Michael 6672 Barber of MTU; fix from Gregory Neil Shapiro of WPI. 6673 Avoid null pointer dereference on illegal Boundary= parameters in 6674 multipart/mixed Content-Type: header. Problem noted by 6675 Richard Muirden of RMIT University. 6676 Always print error messages during newaliases (-bi) even if the 6677 ErrorMode is not set to "print". Fix from Gregory Neil 6678 Shapiro. 6679 Test mode could core dump if you did a /map lookup in an optional map 6680 that could not be opened. Based on a fix from John Beck of 6681 Sun Microsystems. 6682 If DNS is misconfigured so that the last MX record tried points to 6683 a host that does not have an A record, but other MX records 6684 pointed to something reasonable, don't bounce the message 6685 with a "host unknown" error. Note that this should really 6686 be fixed in the zone file for the domain. Problem noted by 6687 Joe Rhett of Navigist, Inc. 6688 If a map fails (e.g., DNS times out) on all recipient addresses, mark 6689 the message as having been tried; otherwise the next queue 6690 run will not realize that this is a second attempt and will 6691 retry immediately. Problem noted by Bryan Costales of 6692 Mercury Mail. 6693 If the clock is set backwards, and a MinQueueAge is set, no jobs 6694 will be run until the later setting of the clock is reached. 6695 "Problem" (I use the term loosely) noted by Eric Hagberg of 6696 Morgan Stanley. 6697 If the load average rises above the cutoff threshold (above which 6698 sendmail will not process the queue at all) during a queue 6699 run, abort the queue run immediately. Problem noted by 6700 Bryan Costales of Mercury Mail. 6701 The variable queue processing algorithm (based on the message size, 6702 number of recipients, message precedence, and job age) was 6703 non-functional -- either the entire queue was processed or 6704 none of the queue was processed. The updated algorithm 6705 does no queue run if a single recipient zero size job will 6706 not be run. 6707 If there is a fatal ("panic") message that will cause sendmail to 6708 die immediately, never hold the error message for future 6709 printing. 6710 Force ErrorMode=print in -bt mode so that all errors are printed 6711 regardless of the setting of the ErrorMode option in the 6712 configuration file. Patch from Gregory Neil Shapiro. 6713 New compile flag HASSTRERROR says that this OS has the strerror(3) 6714 routine available in one of the libraries. Use it in conf.h. 6715 The -m (match only) flag now works on host class maps. 6716 If class hash or btree maps are rebuilt, sendmail will now detect 6717 this and reopen the map. Previously, they could give 6718 erroneous results during a single message processing 6719 (but would recover when the next message was received). 6720 Don't delete zero length queue files when doing queue runs until the 6721 files are at least ten minutes old. This avoids a potential 6722 race condition: the creator creates the qf file, getting back 6723 a file descriptor. The queue runner locks it and deletes it 6724 because it is zero length. The creator then writes the 6725 descriptor that is now for a disconnected file, and the 6726 job goes away. Based on a suggestion by Bryan Costales. 6727 When determining the "validated" host name ($_ macro), do a forward 6728 (A) DNS lookup on the result of the PTR lookup and compare 6729 results. If they differ or if the PTR lookup fails, tag the 6730 address as "may be forged". 6731 Log null connections (i.e., hosts that connect but do not do any 6732 substantive activity on the connection before disconnecting; 6733 "substantive" is defined to be MAIL, EXPN, VRFY, or ETRN. 6734 Always permit "writes" to /dev/null regardless of the link count. 6735 This is safe because /dev/null is special cased, and no open 6736 or write is ever actually attempted. Patch from Villy Kruse 6737 of TwinCom. 6738 If a message cannot be sent because of a 552 (exceeded storage 6739 allocation) response to the MAIL FROM:<>, and a SIZE= parameter 6740 was given, don't return the body in the bounce, since there 6741 is a very good chance that the message will double-bounce. 6742 Fix possible line truncation if a quoted-printable had an =00 escape 6743 in the body. Problem noted by Charles Karney of the Princeton 6744 Plasma Physics Laboratory. 6745 Notify flags (e.g., -NSUCCESS) were lost on user+detail addresses. 6746 Problem noted by Kari Hurtta of the Finnish Meteorological 6747 Institute. 6748 The MaxDaemonChildren option wasn't applying to queue runs as 6749 documented. Note that this increases the potential denial 6750 of service problems with this option: an attacker can 6751 connect many times, and thereby lock out queue runs as well 6752 as incoming connections. If you use this option, you should 6753 run the "sendmail -bd" and "sendmail -q30m" jobs separately 6754 to avoid this attack. Failure to limit noted by Matthew 6755 Dillon of BEST Internet Communications. 6756 Always give a message in newaliases if alias files cannot be 6757 opened instead of failing silently. Suggested by Gregory 6758 Neil Shapiro. This change makes the code match the O'Reilly 6759 book (2nd edition). 6760 Some older versions of the resolver could return with h_errno == -1 6761 if no name server could be reached, causing mail to bounce 6762 instead of queueing. Treat this like TRY_AGAIN. Fix from 6763 John Beck of SunSoft. 6764 If a :include: file is owned by a user that does not have an entry 6765 in the passwd file, sendmail could dereference a null pointer. 6766 Problem noted by Satish Mynam of Sun Microsystems. 6767 Take precautions to make sure that the SMTP protocol cannot get out 6768 of sync if (for example) an alias file cannot be opened. 6769 Fix a possible race condition that can cause a SIGALRM to come in 6770 immediately after a SIGHUP, causing the new sendmail to die. 6771 Avoid possible hang on SVr3 systems when doing child reaping. Patch 6772 from Villy Kruse of TwinCom. 6773 Ignore improperly formatted SMTP reply codes. Previously these were 6774 partially processed, which could cause confusing error 6775 returns. 6776 Fix possible bogus pointer dereference when doing ldapx map lookups 6777 on some architectures. 6778 Portability: 6779 A/UX: from Jim Jagielski of NASA/GSFC. 6780 glibc: SOCK_STREAM was changed from a #define to an enum, 6781 thus breaking #ifdef SOCK_STREAM. Only option seems 6782 to be to assume SOCK_STREAM if __GNU_LIBRARY__ is 6783 defined. Problem reported by A Sun of the University 6784 of Washington. 6785 Solaris: use SIOCGIFNUM to get the number of interfaces on 6786 the system rather than guessing at compile time. 6787 Patch contributed by John Beck of Sun Microsystems. 6788 Intel Paragon: from Wendy Lin of Purdue University. 6789 GNU Hurd: from Miles Bader of the GNU project. 6790 RISC/os 4.50 from Harlan Stenn of PFCS Corporation. 6791 ISC Unix: wait never returns if SIGCLD signals are blocked. 6792 Unfortunately releasing them opens a race condition, 6793 but there appears to be no fix for this. Patch from 6794 Gregory Neil Shapiro. 6795 BIND 8.1 for IPv6 compatibility from John Kennedy. 6796 Solaris: a bug in strcasecmp caused characters with the 6797 high order bit set to apparently randomly match 6798 letters -- for example, $| (0233) matches "i" and "I". 6799 Problem noted by John Gregson of the University of 6800 Cambridge. 6801 IRIX 6.x: make Makefile.IRIX.6.2 apply to all 6.x. From 6802 Kari Hurtta. 6803 IRIX 6.x: Create Makefiles for systems that claim to be 6804 IRIX64 but are 6.2 or higher (so use the regular 6805 IRIX Makefile). 6806 IRIX 6.x: Fix load average computation on 64 bit kernels. 6807 Problem noted by Eric Hagberg of Morgan Stanley. 6808 CONFIG: Some canonification was still done for UUCP-like addresses 6809 even if FEATURE(nocanonify) was set. Problem pointed out by 6810 Brian Candler. 6811 CONFIG: In some cases UUCP mailers wouldn't properly recognize all 6812 local names as local. Problem noted by Jeff Polk of BSDI; 6813 fix provided by Gregory Neil Shapiro. 6814 CONFIG: The "local:user" syntax entries in mailertables and other 6815 "mailer:user" syntax locations returned an incorrect value 6816 for the $h macro. Problem noted by Gregory Neil Shapiro. 6817 CONFIG: Retain "+detail" information when forwarding mail to a 6818 MAIL_HUB, LUSER_RELAY, or LOCAL_RELAY. Patch from Philip 6819 Guenther of Gustavus Adolphus College. 6820 CONFIG: Make sure user+detail works for FEATURE(virtusertable); 6821 rules are the same as for aliasing. Based on a patch from 6822 Gregory Neil Shapiro. 6823 CONFIG: Break up parsing rules into several pieces; this should 6824 have no functional change in this release, but makes it 6825 possible to have better anti-spam rulesets in the future. 6826 CONFIG: Disallow double dots in host names to avoid having the 6827 HostStatusDirectory store status under the wrong name. 6828 In some cases this can be used as a denial-of-service attack. 6829 Problem noted by Ron Jarrell of Virginia Tech, patch from 6830 Gregory Neil Shapiro. 6831 CONFIG: Don't use F=m (multiple recipients per invocation) for 6832 MAILER(procmail), but do pass F=Pn9 (include Return-Path:, 6833 don't include From_, and convert to 8-bit). Suggestions 6834 from Kimmo Suominen and Roderick Schertler. 6835 CONFIG: Domains under $=M (specified with MASQUERADE_DOMAIN) were 6836 being masqueraded as though FEATURE(masquerade_entire_domain) 6837 was specified, even when it wasn't. 6838 MAIL.LOCAL: Solaris 2.6 has snprintf. From John Beck of SunSoft. 6839 MAIL.LOCAL: SECURITY: check to make sure that an attacker doesn't 6840 "slip in" a symbolic link between the lstat(2) call and the 6841 exclusive open. This is only a problem on System V derived 6842 systems that allow an exclusive create on files that are 6843 symbolic links pointing nowhere. 6844 MAIL.LOCAL: If the final mailbox close() failed, the user id was 6845 not reset back to root, which on some systems would cause 6846 later mailboxes to fail. Also, any partial message would 6847 not be truncated, which could result in repeated deliveries. 6848 Problem noted by Bruce Evans via Peter Wemm (FreeBSD 6849 developers). 6850 MAKEMAP: Handle cases where O_EXLOCK is #defined to be 0. A similar 6851 change to the sendmail map code was made in 8.8.3. Problem 6852 noted by Gregory Neil Shapiro. 6853 MAKEMAP: Give warnings on file problems such as map files that are 6854 symbolic links; although makemap is not set-user-ID root, it is 6855 often run as root and hence has the potential for the same 6856 sorts of problems as alias rebuilds. 6857 MAKEMAP: Change compilation so that it will link properly on 6858 NEXTSTEP. 6859 CONTRIB: etrn.pl: search for Cw as well as Fw lines in sendmail.cf. 6860 Accept an optional list of arguments following the server 6861 name for the ETRN arguments to use (instead of $=w). Other 6862 miscellaneous bug fixes. From Christian von Roques via 6863 John Beck of Sun Microsystems. 6864 CONTRIB: Add passwd-to-alias.pl, contributed by Kari Hurtta. This 6865 Perl script converts GECOS information in the /etc/passwd 6866 file into aliases, allowing for faster access to full name 6867 lookups; it is also clever about adding aliases (to root) 6868 for system accounts. 6869 NEW FILES: 6870 src/safefile.c 6871 cf/ostype/gnuhurd.m4 6872 cf/ostype/irix6.m4 6873 contrib/passwd-to-alias.pl 6874 src/Makefiles/Makefile.IRIX64.6.1 6875 src/Makefiles/Makefile.IRIX64.6.x 6876 RENAMED FILES: 6877 src/Makefiles/Makefile.IRIX.6.2 => Makefile.IRIX.6.x 6878 src/Makefiles/Makefile.IRIX64 => Makefile.IRIX64.6.0 6879 68808.8.5/8.8.5 1997/01/21 6881 SECURITY: Clear out group list during startup. Without this, sendmail 6882 will continue to run with the group permissions of the caller, 6883 even if RunAsUser is specified. 6884 SECURITY: Make purgestat (-bH) be root-only. This is not in response 6885 to any known attack, but it's best to be conservative. 6886 Suggested by Peter Wemm of DIALix. 6887 SECURITY: Fix buffer overrun problem in MIME code that has possible 6888 security implications. Patch from Alex Garthwaite of the 6889 University of Pennsylvania. 6890 Use of a -f flag with a phrase attached (e.g., "-f 'Full Name <addr>'") 6891 would truncate the address after "Full". Although the -f 6892 syntax is incorrect (since it is in the envelope, it 6893 shouldn't have comments and full names), the failure mode 6894 was unnecessarily awful. 6895 Fix a possible null pointer dereference when converting 8-bit data 6896 to a 7-bit format. Problem noted by Jim Hutchins of 6897 Sandia National Labs and David James of British Telecom. 6898 Clear out stale state that affected F=9 on SMTP mailers in queue 6899 runs. Although this really shouldn't be used (F=9 is for 6900 final delivery only, and using it on an SMTP mailer makes 6901 it possible for a message to be converted from 8->7->8->7 6902 bits several times), it shouldn't have failed with a syserr. 6903 Problem noted by Eric Hagberg of Morgan Stanley. 6904 _Really_ fix the multiple :maildrop code in the user database 6905 module. Patch from Roy Mongiovi of Georgia Tech. 6906 Let F lines in the configuration file actually read root-only 6907 files if the configuration file is safe. Based on a 6908 patch from Keith Reynolds of SCO. 6909 ETRN followed by QUIT would hold the connection open until the queue 6910 run completed. Problem noted by Truck Lewis of TDK 6911 Semiconductor Corp. 6912 It turns out that despite the documentation, the TCP wrappers library 6913 does _not_ log rejected connections. Do the logging ourselves. 6914 Problem noted by Fletcher Mattox of the University of Texas 6915 at Austin. 6916 If sendmail finds a qf file in its queue directory that is an unknown 6917 version (e.g., when backing out to an old version), the 6918 error is reported on every queue run. Change it to only 6919 give the error once (and rename the qf => Qf). Patch from 6920 William A. Gianopoulos of Raytheon Company. 6921 Start a new session when doing background delivery; currently it 6922 ignored signals but didn't start a new signal, that caused 6923 some problems if a background process tried to send mail 6924 under certain circumstances. Problem noted by Eric Hagberg 6925 of Morgan Stanley; fix from Kari Hurtta. 6926 Simplify test for skipping a queue run to just check if the current 6927 load average is >= the queueing load average. Previously 6928 the check factored in some other parameters that caused it 6929 to essentially never skip the queue run. Patch from Bryan 6930 Costales. 6931 If the SMTP server is running in "nullserver" mode (that is, it is 6932 rejecting all commands), start sleeping after MAXBADCOMMAND 6933 (25) commands; this helps prevent a bad guy from putting 6934 you into a tight loop as a denial-of-service attack. Based 6935 on an e-mail conversation with Brad Knowles of AOL. 6936 Slow down when too many "light weight" commands have been issued; 6937 this helps prevent a class of denial-of-service attacks. 6938 The current values and defaults are: 6939 MAXNOOPCOMMANDS 20 NOOP, VERB, ONEX, XUSR 6940 MAXHELOCOMMANDS 3 HELO, EHLO 6941 MAXVRFYCOMMANDS 6 VRFY, EXPN 6942 MAXETRNCOMMANDS 8 ETRN 6943 These will probably be configurable in a future release. 6944 On systems that have uid_t typedefed to be an unsigned short, programs 6945 that had the F=S flag and no U= equate would be invoked with 6946 the real uid set to 65535 rather than being left unchanged. 6947 In some cases, NOTIFY=NEVER was not being honored. Problem noted 6948 by Steve Hubert of the University of Washington, Seattle. 6949 Mail that was Quoted-Printable encoded and had a soft line break on 6950 the last line (i.e., an incomplete continuation) had the last 6951 line dropped. Since this appears to be illegal it isn't 6952 clear what to do with it, but flushing the last line seems 6953 to be a better "fail soft" approach. Based on a patch from 6954 Eric Hagberg. 6955 If AllowBogusHELO and PrivacyOptions=needmailhelo are both set, a 6956 bogus HELO command still causes the "Polite people say HELO 6957 first" error message. Problem pointed out by Chris Thomas 6958 of UCLA; patch from John Beck of SunSoft. 6959 Handle "sendmail -bp -qSfoobar" properly if restrictqrun is set 6960 in PrivacyOptions. The -q shouldn't turn this command off. 6961 Problem noted by Murray Kucherawy of Pacific Bell Internet; 6962 based on a patch from Gregory Neil Shapiro of WPI. 6963 Don't consider SMTP reply codes 452 or 552 (exceeded storage allocation) 6964 in a DATA transaction to be sticky; these can occur because 6965 a message is too large, and smaller messages should still go 6966 through. Problem noted by Matt Dillon of Best Internet 6967 Communications. 6968 In some cases bounces were saved in /var/tmp/dead.letter even if they 6969 had been successfully delivered to the envelope sender. 6970 Problem noted Eric Hagberg of Morgan Stanley; solution from 6971 Gregory Neil Shapiro of WPI. 6972 Give better diagnostics on long alias lines. Based on code contributed 6973 by Patrick Gosling of the University of Cambridge. 6974 Increase the number of virtual interfaces that will be probed for 6975 alternate names. Problem noted by Amy Rich of Shore.Net. 6976 PORTABILITY: 6977 UXP/DS V20L10 for Fujitsu DS/90: Makefile patches from 6978 Toshiaki Nomura of Fujitsu Limited. 6979 SunOS with LDAP support: compile problems with struct timeval. 6980 Patch from Nick Cuccia of TCSI Corporation. 6981 SCO: from Keith Reynolds of SCO. 6982 Solaris: kstat load average computation wasn't being used. 6983 Fixes from Michael Ju. Tokarev of Telecom Service, JSC 6984 (Moscow). 6985 OpenBSD: from Jason Downs of teeny.org. 6986 Altos System V: from Tim Rice. 6987 Solaris 2.5: from Alan Perry of SunSoft. 6988 Solaris 2.6: from John Beck of SunSoft. 6989 Harris Nighthawk PowerUX (mh6000 box): from Bob Miorelli 6990 of Pratt & Whitney <miorelli@pweh.com>. 6991 CONFIG: It seems that I hadn't gotten the Received: line syntax 6992 _just_right_ yet. Tweak it again. I'll omit the names 6993 of the "contributors" (quantity two) in this one case. 6994 As of now, NO MORE DISCUSSION about the syntax of the 6995 Received: line. 6996 CONFIG: Although FEATURE(nullclient) uses EXPOSED_USER (class $=E), 6997 it never inserts that class into the output file. Fix it 6998 so it will honor EXPOSED_USER but will _not_ include root 6999 automatically in this class. Problem noted by Ronan KERYELL 7000 of Centre de Recherche en Informatique de l'�cole Nationale 7001 Sup�rieure des Mines de Paris (CRI-ENSMP). 7002 CONFIG: Clean up handling of "local:" syntax in relay specifications 7003 such as LUSER_RELAY. This change permits the following 7004 syntaxes: ``local:'' will send to the same user on the 7005 local machine (e.g., in a mailertable entry for "host", 7006 ``local:'' will cause an address addressed to user@host to 7007 go to user on the local machone). ``local:user'' will send 7008 to the named user on the local machine. ``local:user@host'' 7009 is equivalent to ``local:user'' (the host is ignored). In 7010 all cases, the original user@host is passed in $@ (i.e., the 7011 detail information). Inspired by a report from Michael Fuhr. 7012 CONFIG: Strip quotes from the first word of an "error:" host 7013 indication. This lets you set (for example) the LUSER_RELAY 7014 to be ``error:\"5.1.1\" Your Message Here''. Note the use 7015 of the \" so that the resulting string is properly quoted. 7016 Problem noted by Gregory Neil Shapiro of WPI. 7017 OP.ME: documentation was inconsistent about whether sendmail did a 7018 NOOP or a RSET to probe the connection (it does a RSET). 7019 Inconsistency noted by Deeran Peethamparam. 7020 OP.ME: insert additional blank pages so it will print properly on 7021 a duplex printer. From Matthew Black of Cal State University, 7022 Long Beach. 7023 70248.8.4/8.8.4 1996/12/02 7025 SECURITY: under some circumstances, an attacker could get additional 7026 permissions by hard linking to files that were group 7027 writable by the attacker. The solution is to disallow any 7028 files that have hard links -- this will affect .forward, 7029 :include:, and output files. Problem noted by Terry 7030 Kyriacopoulos of Interlog Internet Services. As a 7031 workaround, set UnsafeGroupWrites -- always a good idea. 7032 SECURITY: the TryNullMXList (w) option should not be safe -- if it 7033 is, it is possible to do a denial-of-service attack on 7034 MX hosts that rely on the use of the null MX list. There 7035 is no danger if you have this option turned off (the default). 7036 Problem noted by Dan Bernstein. Also, make the DontInitGroups 7037 unsafe. I know of no specific attack against this, although 7038 a denial-of-service attack is probably possible, but in theory 7039 you should not be able to safely tweak anything that affects 7040 the permissions that are used when mail is delivered. 7041 Purgestat could go into an infinite loop if one of the host status 7042 directories somehow became empty. Problem noted by Roy 7043 Mongiovi of Georgia Tech. 7044 Processes got "lost" when counting children due to a race condition. 7045 This caused "proc_list_probe: lost pid" messages to be logged. 7046 Problem noted by several people. 7047 On systems with System V SIGCLD child signal semantics (notably AIX 7048 and HP-UX), mail transactions would print the message "451 7049 SMTP-MAIL: lost child: No child processes". Problem noted 7050 by several people. 7051 Miscellaneous compiler warnings on picky compilers (or when setting 7052 gcc to high warning levels). From Tom Moore of NCR Corp. 7053 SMTP protocol errors, and most errors on MAIL FROM: lines should 7054 not be persistent between runs, since they are based on the 7055 message rather than the host. Problem noted by Matt Dillon 7056 of Best Internet Communications. 7057 The F=7 flag was ignored on SMTP mailers. Problem noted by Tom Moore 7058 of NCR (a.k.a., AT&T Global Information Solutions). 7059 Avoid the possibility of having a child daemon run to completion 7060 (including closing the SMTP socket) before the parent has 7061 had a chance to close the socket; this can cause the parent 7062 to hang for a long time waiting for the socket to drain. 7063 Patch from Don Lewis of TDK Semiconductor. 7064 If the fork() failed in a queue run, the queue runners would not be 7065 rescheduled (so queue runs would stop). Patch from Don Lewis. 7066 Some error conditions in ETRN could cause output without an SMTP 7067 status code. Problem noted by Don Lewis. 7068 Multiple :maildrop addresses in the user database didn't work properly. 7069 Patch from Roy Mongiovi of Georgia Tech. 7070 Add ".db" automatically onto any user database spec that does not 7071 already have it; this is for consistency with makemap, the 7072 K line, and the documentation. Inconsistency pointed out 7073 by Roy Mongiovi. 7074 Allow sendmail to be properly called in nohup mode. Patch from 7075 Kyle Jones of UUNET. 7076 Change ETRN to ignore but still update host status files; previously 7077 it would ignore them and not save the updated status, which 7078 caused stale information to be maintained. Based on a patch 7079 from Christopher Davis of Kapor Enterprises Inc. Also, have 7080 ETRN ignore the MinQueueAge option. 7081 Patch long term host status to recover more gracefully from an empty 7082 host status file condition. Patch from NAKAMURA Motonori 7083 of Kyoto University. 7084 Several patches to signal handling code to fix potential race 7085 conditions from Don Lewis. 7086 Make it possible to compile with -DDAEMON=0 (previously it had some 7087 compile errors). This turns DAEMON, QUEUE, and SMTP into 7088 0/1 compilation flags. Note that DAEMON is an obsolete 7089 compile flag; use NETINET instead. Solution based on a 7090 patch from Bryan Costales. 7091 PORTABILITY FIXES: 7092 AIX4: getpwnam() and getpwuid() do a sequential scan of the 7093 /etc/security/passwd file when called as root. This 7094 is very slow on some systems. To speed it up, use the 7095 (undocumented) _getpw{nam,uid}_shadow() routines. 7096 Patch from Chris Thomas of UCLA/OAC Systems Group. 7097 SCO 5.x: include -lprot in the Makefile. Patch from Bill 7098 Glicker of Burrelle's Information Service. 7099 NEWS-OS 4.x: need a definition for MODE_T to compile. Patch 7100 from Makoto MATSUSHITA of Osaka University. 7101 SunOS 4.0.3: compile problems. Patches from Andrew Cole of 7102 Leeds University and SASABE Tetsuro of the University 7103 of Tokyo. 7104 DG/UX 5.4.4.11 from Brian J. Murrell of InterLinx Support 7105 Services, Inc. 7106 Domain/OS from Don (Truck) Lewis of TDK Semiconductor Corp. 7107 I believe this to have only been a problem if you 7108 compiled with -DUSE_VENDOR_CF_PATH -- another reason 7109 to stick with /etc/sendmail.cf as your One True Path. 7110 Digital UNIX (OSF/1 on Alpha) load average computation from 7111 Martin Laubach of the Technischen Universit�t Wien. 7112 CONFIG: change default Received: line to be multiple lines rather 7113 than one long one. By popular demand. 7114 MAIL.LOCAL: warnings weren't being logged on some systems. Patch 7115 from Jerome Berkman of U.C. Berkeley. 7116 MAKEMAP: be sure to zero hinfo to avoid cruft that can cause runs 7117 to take a very long time. Problem noted by Yoshiro YONEYA 7118 of NTT Software Corporation. 7119 CONTRIB: add etrn.pl, contributed by John Beck. 7120 NEW FILES: 7121 contrib/etrn.pl 7122 71238.8.3/8.8.3 1996/11/17 7124 SECURITY: it was possible to get a root shell by lying to sendmail 7125 about argv[0] and then sending it a signal. Problem noted 7126 by Leshka Zakharoff <leshka@leshka.chuvashia.su> on the 7127 best-of-security list. 7128 Log sendmail binary version number in "Warning: .cf version level 7129 (%d) exceeds program functionality (%d) message" -- this 7130 should make it clearer to people that they are running 7131 the wrong binary. 7132 Fix a problem that occurs when you open an SMTP connection and then 7133 do one or more ETRN commands followed by a MAIL command; at 7134 the end of the DATA phase sendmail would incorrectly report 7135 "451 SMTP-MAIL: lost child: No child processes". Problem 7136 noted by Eric Bishop of Virginia Tech. 7137 When doing text-based host canonification (typically /etc/hosts 7138 lookup), a null host name would match any /etc/hosts entry 7139 with space at the end of the line. Problem noted by Steve 7140 Hubert of the University of Washington, Seattle. 7141 7 to 8 bit BASE64 MIME conversions could duplicate bits of text. 7142 Problem reported by Tom Smith of Digital Equipment Corp. 7143 Increase the size of the DNS answer buffer -- the standard UDP packet 7144 size PACKETSZ (512) is not sufficient for some nameserver 7145 answers containing very many resource records. The resolver 7146 may also switch to TCP and retry if it detects UDP packet 7147 overflow. Also, allow for the fact that the resolver 7148 routines res_query and res_search return the size of the 7149 *un*truncated answer in case the supplied answer buffer it 7150 not big enough to accommodate the entire answer. Patch from 7151 Eric Wassenaar. 7152 Improvements to MaxDaemonChildren code. If you think you have too 7153 many children, probe the ones you have to verify that they 7154 are still around. Suggested by Jared Mauch of CICnet, Inc. 7155 Also, do this probe before growing the vector of children 7156 pids; this previously caused the vector to grow indefinitely 7157 due to a race condition. Problem reported by Kyle Jones of 7158 UUNET. 7159 On some architectures, <db.h> (from the Berkeley DB library) defines 7160 O_EXLOCK to zero; this fools the map compilation code into 7161 thinking that it can avoid race conditions by locking on open. 7162 Change it to check for O_EXLOCK non-zero. Problem noted by 7163 Leif Erlingsson of Data Lege. 7164 Always call res_init() on startup (if compiled in, of course) to 7165 allow the sendmail.cf file to tweak resolver flags; without 7166 it, flag tweaks in ResolverOptions are ignored. Patch from 7167 Andrew Sun of Merrill Lynch. 7168 Improvements to host status printing code. Suggested by Steve Hubert 7169 of the University of Washington, Seattle. 7170 Change MinQueueAge option processing to do the check for the job age 7171 when reading the queue file, rather than at the end; this 7172 avoids parsing the addresses, which can do DNS lookups. 7173 Problem noted by John Beck of InReference, Inc. 7174 When MIME was being 7->8 bit decoded, "From " lines weren't being 7175 properly escaped. Problem noted by Peter Nilsson of the 7176 University of Linkoping. 7177 In some cases, sendmail would retain root permissions during queue 7178 runs even if RunAsUser was set. Problem noted by Mark 7179 Thomas of Mark G. Thomas Consulting. 7180 If the F=l flag was set on an SMTP mailer to indicate that it is 7181 actually local delivery, and NOTIFY=SUCCESS is specified in 7182 the envelope, and the receiving SMTP server speaks DSN, then 7183 the DSN would be both generated locally and propagated to the 7184 other end. 7185 The U= mailer field didn't correctly extract the group id if the 7186 user id was numeric. Problem noted by Kenneth Herron of 7187 MCI Telecommunications Communications. 7188 If a message exceeded the fixed maximum size on input, the body of 7189 the message was included in the bounce. Note that this did 7190 not occur if it exceeded the maximum _output_ size. Problem 7191 reported by Kyle Jones of UUNET. 7192 PORTABILITY FIXES: 7193 AIX4: 4.1 doesn't have a working setreuid(2); change the 7194 AIX4 defines to use seteuid(2) instead, which 7195 works on 4.1 as well as 4.2. Problem noted by 7196 H�kan Lindholm of interAF, Sweden. 7197 AIX4: use tzname[] vector to determine time zone name. 7198 Patch from NAKAMURA Motonori of Kyoto University. 7199 MkLinux: add Makefile.Linux.ppc and OSTYPE(mklinux) support. 7200 Contributed by Paul DuBois <dubois@primate.wisc.edu>. 7201 Solaris: kstat(3k) support for retrieving the load average. 7202 This adds the LA_KSTAT definition for LA_TYPE. 7203 The outline of the implementation was contributed 7204 by Michael Tokarev of Telecom Service, JSC, Moscow. 7205 HP-UX 10.0 gripes about the (perfectly legal!) forward 7206 declaration of struct rusage at the top of conf.h; 7207 change it to only be included if you are using gcc, 7208 which is apparently the only compiler that requires 7209 it in the first place. Problem noted by Jeff 7210 Earickson of Colby College. 7211 IRIX: don't default to using gcc. IRIX is a civilized 7212 operating system that comes with a decent compiler 7213 by default. Problem noted by Barry Bouwsma and 7214 Kari Hurtta. 7215 CONFIG: specify F=9 as default in FEATURE(local_procmail) for 7216 consistency with other local mailers. Inconsistency 7217 pointed out by Teddy Hogeborn <teddy@fukt.hk-r.se>. 7218 CONFIG: if the "limited best mx" feature is used (to reduce DNS 7219 overhead) as part of the bestmx_is_local feature, the 7220 domain part was dropped from the name. Patch from Steve 7221 Hubert of the University of Washington, Seattle. 7222 CONFIG: catch addresses of the form "user@.dom.ain"; these could 7223 end up being translated to the null host name, which would 7224 return any entry in /etc/hosts that had a space at the end 7225 of the line. Problem noted by Steve Hubert of the 7226 University of Washington, Seattle. 7227 CONFIG: add OSTYPE(aix4). From Michael Sofka of Rensselaer 7228 Polytechnic Institute. 7229 MAKEMAP: tweak hash and btree parameters for better performance. 7230 Patch from Matt Dillon of Best Internet Communications. 7231 NEW FILES: 7232 src/Makefiles/Makefile.Linux.ppc 7233 cf/ostype/aix4.m4 7234 cf/ostype/mklinux.m4 7235 72368.8.2/8.8.2 1996/10/18 7237 SECURITY: fix a botch in the 7-bit MIME patch; the previous patch 7238 changed the code but didn't fix the problem. 7239 PORTABILITY FIXES: 7240 Solaris: Don't use the system getusershell(3); it can 7241 apparently corrupt the heap in some circumstances. 7242 Problem found by Ken Pizzini of Spry, Inc. 7243 OP.ME: document several mailer flags that were accidentally omitted 7244 from this document. These flags were F=d, F=j, F=R, and F=9. 7245 CONFIG: no changes. 7246 72478.8.1/8.8.1 1996/10/17 7248 SECURITY: unset all environment variables that the resolver will 7249 examine during queue runs and daemon mode. Problem noted 7250 by Dan Bernstein of the University of Illinois at Chicago. 7251 SECURITY: in some cases an illegal 7-bit MIME-encoded text/plain 7252 message could overflow a buffer if it was converted back 7253 to 8 bits. This caused core dumps and has the potential 7254 for a remote attack. Problem first noted by Gregory Shapiro 7255 of WPI. 7256 Avoid duplicate deliveries of error messages on systems that don't 7257 have flock(2) support. Patch from Motonori Nakamura of 7258 Kyoto University. 7259 Ignore null FallBackMX (V) options. If this option is null (as 7260 opposed to undefined) it can cause "null signature" syserrs 7261 on illegal host names. 7262 If a Base64 encoded text/plain message has no trailing newline in 7263 the encoded text, conversion back to 8 bits will drop the 7264 final line. Problem noted by Pierre David. 7265 If running with a RunAsUser, sendmail would give bogus "cannot 7266 setuid" (or seteuid, or setreuid) messages on some systems. 7267 Problem pointed out by Jordan Mendelson of Web Services, Inc. 7268 Always print error messages in -bv mode -- previously, -bv would 7269 be absolutely silent on errors if the error mode was sent 7270 to (say) mail-back. Problem noted by Kyle Jones of UUNET. 7271 If -qI/R/S is set (or the ETRN command is used), ignore all long 7272 term host status. This is necessary because it is common 7273 to do this when you know a host has just come back up. 7274 Disallow duplicate HELO/EHLO commands as required by RFC 1651 section 7275 4.2. Excessive permissiveness noted by Lee Flight of the 7276 University of Leicester. 7277 If a service (such as NIS) is specified as the last entry in the 7278 service switch, but that service is not compiled in, sendmail 7279 would return a temporary failure when an entry was not found 7280 in the map. This caused the message to be queued instead of 7281 bouncing immediately. Problem noted by Harry Edmon of the 7282 University of Washington. 7283 PORTABILITY FIXES: 7284 Solaris 2.3 had compilation problems in conf.c. Several 7285 people pointed this out. 7286 NetBSD from Charles Hannum of MIT. 7287 AIX4 improvements based on info from Steve Bauer of South 7288 Dakota School of Mines & Technology. 7289 CONFIG: ``error:code message'' syntax was broken in virtusertable. 7290 Patch from Gil Kloepfer Jr. 7291 CONFIG: if FEATURE(nocanonify) was specified, hosts in $=M (set 7292 using MASQUERADE_DOMAIN) were not masqueraded unless they 7293 were also in $=w. Problem noted by Zoltan Basti of 7294 Softec. 7295 MAIL.LOCAL: patches to compile and link cleanly on AIX. Based 7296 on a patch from Eric Hagberg of Morgan Stanley. 7297 MAIL.LOCAL: patches to compile on NEXTSTEP. From Patrick Nolan 7298 of Stanford via Robert La Ferla. 7299 73008.8.0/8.8.0 1996/09/26 7301 Under some circumstances, Bcc: headers would not be properly 7302 deleted. Pointed out by Jonathan Kamens of OpenVision. 7303 Log a warning if the sendmail daemon is invoked without a full 7304 pathname, which prevents "kill -1" from working. I was 7305 urged to put this in by Andrey A. Chernov of DEMOS (Russia). 7306 Fix small buffer overflow. Since the data in this buffer was not 7307 read externally, there was no security problem (and in fact 7308 probably wouldn't really overflow on most compilers). Pointed 7309 out by KIZU takashi of Osaka University. 7310 Fix problem causing domain literals such as [1.2.3.4] to be ignored 7311 if a FallbackMXHost was specified in the configuration file 7312 -- all mail would be sent to the fallback even if the original 7313 host was accessible. Pointed out by Munenari Hirayama of 7314 NSC (Japan). 7315 A message that didn't terminate with a newline would (sometimes) not 7316 have the trailing "." added properly in the SMTP dialogue, 7317 causing SMTP to hang. Patch from Per Hedeland of Ericsson. 7318 The DaemonPortOptions suboption to bind to a particular address was 7319 incorrect and nonfunctional due to a misunderstanding of the 7320 semantics of binding on a passive socket. Patch from 7321 NIIBE Yutaka of Mitsubishi Research Institute. 7322 Increase the number of MX hosts for a single name to 100 to better 7323 handle the truly huge service providers such as AOL, which 7324 has 13 at the moment (and climbing). In order to avoid 7325 trashing memory, the buffer for all names has only been 7326 slightly increased in size, to 12.8K from 10.2K -- this means 7327 that if a single name had 100 MX records, the average size 7328 of those records could not exceed 128 bytes. Requested by 7329 Brad Knowles of America On Line. 7330 Restore use of IDENT returns where the OSTYPE field equals "OTHER". 7331 Urged by Dan Bernstein of U.C. Berkeley. 7332 Print q_statdate and q_specificity in address structure debugging 7333 printout. 7334 Expand MCI structure flag bits for debugging output. 7335 Support IPv6-style domain literals, which can have colons between 7336 square braces. 7337 Log open file descriptors for the "cannot dup" messages in deliver(); 7338 this is an attempt to track down a bug that one person seems 7339 to be having (it may be a Solaris bug!). 7340 DSN NOTIFY parameters were not properly propagated across queue runs; 7341 this caused the NOTIFY info to sometimes be lost. Problem 7342 pointed out by Claus Assmann of the 7343 Christian-Albrechts-University of Kiel. 7344 The statistics gathered in the sendmail.st file were too high; in 7345 some cases failures (e.g., user unknown or temporary failure) 7346 would count as a delivery as far as the statistics were 7347 concerned. Problem noted by Tom Moore of AT&T GIS. 7348 Systems that don't have flock() would not send split envelopes in 7349 the initial run. Problem pointed out by Leonard Zubkoff of 7350 Dandelion Digital. 7351 Move buffer overflow checking -- these primarily involve distrusting 7352 results that may come from NIS and DNS. 7353 4.4-BSD-derived systems, including FreeBSD, NetBSD, and BSD/OS didn't 7354 include <paths.h> and hence had the wrong pathnames for a few 7355 things like /var/tmp. Reported by Matthew Green. 7356 Conditions were reversed for the Priority: header, resulting in all 7357 values being interpreted as non-urgent except for non-urgent, 7358 which was interpreted as normal. Patch from Bryan Costales. 7359 The -o (optional) flag was being ignored on hash and btree maps 7360 since 8.7.2. Fix from Bryan Costales. 7361 Content-Types listed in class "q" will always be encoded as 7362 Quoted-Printable (or more accurately, will never be encoded 7363 as base64). The class can have primary types (e.g., "text") 7364 or full types (e.g., "text/plain"). Based on a suggestion by 7365 Marius Olafsson of the University of Iceland. 7366 Define ${envid} to be the original envelope id (from the ESMTP DSN 7367 dialogue) so it can be passed to programs in mailers. 7368 Define ${bodytype} to be the body type (from the -B flag or the 7369 BODY= ESMTP parameter) so it can be passed to programs in 7370 mailers. 7371 Cause the VRFY command to return 252 instead of 250 unless the F=q 7372 flag is set in the mailer descriptor. Suggested by John 7373 Myers of CMU. 7374 Implement ESMTP ETRN command to flush the queue for a specific host. 7375 The command takes a host name; data for that host is 7376 immediately (and asynchronously) flushed. Because this shares 7377 the -qR implementation, other hosts may be attempted, but 7378 there should be no security implications. Implementation 7379 from John Beck of InReference, Inc. See RFC 1985 for details. 7380 Add three new command line flags to pass in DSN parameters: -V envid 7381 (equivalent to ENVID=envid on the MAIL command), -R ret 7382 (equivalent to RET=ret on the MAIL command), and -Nnotify 7383 (equivalent to NOTIFY=notify on the RCPT command). Note 7384 that the -N flag applies to all recipients; there is no way 7385 to specify per-address notifications on the command line, 7386 nor is there an equivalent for the ORCPT= per-address 7387 parameter. 7388 Restore LogLevel option to be safe (it can only be increased); 7389 apparently I went into paranoid mode between 8.6 and 8.7 7390 and made it unsafe. Pointed out by Dabe Murphy of the 7391 University of Maryland. 7392 New logging on log level 15: all SMTP traffic. Patches from 7393 Andrew Gross of San Diego Supercomputer Center. 7394 NetInfo property value searching code wasn't stopping when it found 7395 a match. This was causing the wrong values to be found (and 7396 had a memory leak). Found by Bastian Schleuter of TU-Berlin. 7397 Add new F=0 (zero) mailer flag to turn off MX lookups. It was pointed 7398 out by Bill Wisner of Electronics for Imaging that you can't 7399 use the bracket address form for the MAIL_HUB macro, since 7400 that causes the brackets to remain in the envelope recipient 7401 address used for delivery. The simple fix (stripping off the 7402 brackets in the config file) breaks the use of IP literal 7403 addresses. This flag will solve that problem. 7404 Add MustQuoteChars option. This is a list of characters that must 7405 be quoted if they are found in the phrase part of an address 7406 (that is, the full name part). The characters @,;:\()[] are 7407 always in this list and cannot be removed. The default is 7408 this list plus . and ' to match RFC 822. 7409 Add AllowBogusHELO option; if set, sendmail will allow HELO commands 7410 that do not include a host name for back compatibility with 7411 some stupid SMTP clients. Setting this violates RFC 1123 7412 section 5.2.5. 7413 Add MaxDaemonChildren option; if this is set, sendmail will start 7414 rejecting connections if it has more than this many 7415 outstanding children accepting mail. Note that you may 7416 see more processes than this because of outgoing mail; this 7417 is for incoming connections only. 7418 Add ConnectionRateThrottle option. If set to a positive value, the 7419 number of incoming SMTP connections that will be permitted 7420 in a single second is limited to this number. Connections are 7421 not refused during this time, just deferred. The intent is to 7422 flatten out demand so that load average limiting can kick in. 7423 It is less radical than MaxDaemonChildren, which will stop 7424 accepting connections even if all the connections are idle 7425 (e.g., due to connection caching). 7426 Add Timeout.hoststatus option. This interval (defaulting to 30m) 7427 specifies how long cached information about the state of a 7428 host will be kept before they are considered stale and the 7429 host is retried. If you are using persistent host status 7430 (i.e., the HostStatusDirectory option is set) this will apply 7431 between runs; otherwise, it applies only within a single queue 7432 run and hence is useful only for hosts that have large queues 7433 that take a very long time to run. 7434 Add SingleLineFromHeader option. If set, From: headers are coerced 7435 into being a single line even if they had newlines in them 7436 when read. This is to get around a botch in Lotus Notes. 7437 Text class maps were totally broken -- if you ever retrieved the last 7438 item in a table it would be truncated. Problem noted by 7439 Gregory Neil Shapiro of WPI. 7440 Extend the lines printed by the mailq command (== the -bp flag) when 7441 -v is given to 120 characters; this allows more information 7442 to be displayed. Suggested by Gregory Neil Shapiro of WPI. 7443 Allow macro definitions (`D' lines) with unquoted commas; previously 7444 this was treated as end-of-input. Problem noted by Bryan 7445 Costales. 7446 The RET= envelope parameter (used for DSNs) wasn't properly written 7447 to the queue file. Fix from John Hughes of Atlantic 7448 Technologies, Inc. 7449 Close /var/tmp/dead.letter after a successful write -- otherwise 7450 if this happens in a queue run it can cause nasty delays. 7451 Problem noted by Mark Horton of AT&T. 7452 If userdb entries pointed to userdb entries, and there were multiple 7453 values for a given key, the database cursor would get 7454 trashed by the recursive call. Problem noted by Roy Mongiovi 7455 of Georgia Tech. Fixed by reading all the values and creating 7456 a comma-separated list; thus, the -v output will be somewhat 7457 different for this case. 7458 Fix buffer allocation problem with Hesiod-based userdb maps when 7459 HES_GETMAILHOST is defined. Based on a patch by Betty Lee 7460 of Stanford University. 7461 When envelopes were split due to aliases with owner- aliases, and 7462 there was some error on one of the lists, more than one of 7463 the owners would get the message. Problem pointed out by 7464 Roy Mongiovi of Georgia Tech. 7465 Detect excessive recursion in macro expansions, e.g., $X defined 7466 in terms of $Y which is defined in terms of $X. Problem 7467 noted by Bryan Costales; patch from Eric Wassenaar. 7468 When using F=U to get "ugly UUCP" From_ lines, a buffer could in 7469 some cases get trashed causing bogus From_ lines. Fix from 7470 Kyle Jones of UUNET. 7471 When doing load average initialization, if the nlist call for avenrun 7472 failed, the second and subsequent lookups wouldn't notice 7473 that fact causing bogus load averages to be returned. Noted 7474 by Casper Dik of Sun Holland. 7475 Fix problem with incompatibility with some versions of inet_aton that 7476 have changed the return value to unsigned, so a check for an 7477 error return of -1 doesn't work. Use INADDR_NONE instead. 7478 This could cause mail to addresses such as [foo.com] to bounce 7479 or get dropped. Problem noted by Christophe Wolfhugel of the 7480 Pasteur Institute. 7481 DSNs were inconsistent if a failure occurred during the DATA phase 7482 rather than the RCPT phase: the Action: would be correct, but 7483 the detailed status information would be wrong. Problem noted 7484 by Bob Snyder of General Electric Company. 7485 Add -U command line flag and the XUSR ESMTP extension, both indicating 7486 that this is the initial MUA->MTA submission. The flag current 7487 does nothing, but in future releases (when MUAs start using 7488 these flags) it will probably turn on things like DNS 7489 canonification. 7490 Default end-of-line string (E= specification on mailer [M] lines) 7491 to \r\n on SMTP mailers. Default remains \n on non-SMTP 7492 mailers. 7493 Change the internal definition for the *file* and *include* mailers 7494 to have $u in the argument vectors so that they aren't 7495 misinterpreted as SMTP mailers and thus use \r\n line 7496 termination. This will affect anyone who has redefined 7497 either of these in their configuration file. 7498 Don't assume that IDENT servers close the connection after a query; 7499 responses can be newline terminated. From Terry Kennedy of 7500 St. Peter's College. 7501 Avoid core dumps on erroneous configuration files that have 7502 $#mailer with nothing following. From Bryan Costales. 7503 Avoid null pointer dereference with high debug values in unlockqueue. 7504 Fix from Randy Martin of Clemson University. 7505 Fix possible buffer overrun when expanding very large macros. Fix 7506 from Kyle Jones of UUNET. 7507 After 25 EXPN or VRFY commands, start pausing for a second before 7508 processing each one. This avoids a certain form of denial 7509 of service attack. Potential attack pointed out by Bryan 7510 Costales. 7511 Allow new named (not numbered!) config file rules to do validity 7512 checking on SMTP arguments: check_mail for MAIL commands and 7513 check_rcpt for RCPT commands. These rulesets can do anything 7514 they want; their result is ignored unless they resolve to the 7515 $#error mailer, in which case the indicated message is printed 7516 and the command is rejected. Similarly, the check_compat 7517 ruleset is called before delivery with "from_addr $| to_addr" 7518 (the $| is a meta-symbol used to separate the two addresses); 7519 it can give a "this sender can't send to this recipient" 7520 notification. Note that this patch allows $| to stand alone 7521 in rulesets. 7522 Define new macros ${client_name}, ${client_addr}, and ${client_port} 7523 that have the name, IP address, and port number (respectively) 7524 of the SMTP client (that is, the entity at the other end of 7525 the connection. These can be used in (e.g.) check_rcpt to 7526 verify that someone isn't trying to relay mail through your 7527 host inappropriately. Be sure to use the deferred evaluation 7528 form, for example $&{client_name}, to avoid having these bound 7529 when sendmail reads the configuration file. 7530 Add new config file rule check_relay to check the incoming connection 7531 information. Like check_compat, it is passed the host name 7532 and host address separated by $| and can reject connections 7533 on that basis. 7534 Allow IDA-style recursive function calls. Code contributed by Mark 7535 Lovell and Paul Vixie. 7536 Eliminate the "No ! in UUCP From address!" message" -- instead, create 7537 a virtual UUCP address using either a domain address or the $k 7538 macro. Based on code contributed by Mark Lovell and Paul 7539 Vixie. 7540 Add Stanford LDAP map. Requires special libraries that are not 7541 included with sendmail. Contributed by Booker C. Bense 7542 <bbense@networking.stanford.edu>; contact him for support. 7543 See also the src/READ_ME file. 7544 Allow -dANSI to turn on ANSI escape sequences in debug output; this 7545 puts metasymbols (e.g., $+) in reverse video. Really useful 7546 only for debugging deep bits of code where it is important to 7547 distinguish between the single-character metasymbol $+ and the 7548 two characters $, +. 7549 Changed ruleset 89 (executed in dumpstate()) to a named ruleset, 7550 debug_dumpstate. 7551 Add new UnsafeGroupWrites option; if set, .forward and :include: 7552 files that are group writable are considered "unsafe" -- that 7553 is, programs and files referenced from such files are not 7554 valid recipients. 7555 Delete bogosity test for FallBackMX host; this prevented it to be a 7556 name that was not in DNS or was a domain-literal. Problem 7557 noted by Tom May. 7558 Change the introduction to error messages to more clearly delineate 7559 permanent from temporary failures; if both existed in a 7560 single message it could be confusing. Suggested by John 7561 Beck of InReference, Inc. 7562 The IngoreDot (i) option didn't work for lines that were terminated 7563 with CRLF. Problem noted by Ted Stockwell of Secure 7564 Computing Corporation. 7565 Add a heuristic to improve the handling of unbalanced `<' signs in 7566 message headers. Problem reported by Matt Dillon of Best 7567 Internet Communications. 7568 Check for bogus characters in the 0200-0237 range; since these are 7569 used internally, very strange errors can occur if those 7570 characters appear in headers. Problem noted by Anders Gertz 7571 of Lysator. 7572 Implement 7 -> 8 bit MIME conversions. This only takes place if the 7573 recipient mailer has the F=9 flag set, and only works on 7574 text/plain body types. Code contributed by Marius Olafsson 7575 of the University of Iceland. 7576 Special case "postmaster" name so that it is always treated as lower 7577 case in alias files regardless of configuration settings; 7578 this prevents some potential problems where "Postmaster" or 7579 "POSTMASTER" might not match "postmaster". In most cases 7580 this change is a no-op. 7581 The -o map flag was ignored for text maps. Problem noted by Bryan 7582 Costales. 7583 The -a map flag was ignored for dequote maps. Problem noted by 7584 Bryan Costales. 7585 Fix core dump when a lookup of a class "prog" map returns no 7586 response. Patch from Bryan Costales. 7587 Log instances where sendmail is deferring or rejecting connections 7588 on LogLevel 14. Suggested by Kyle Jones of UUNET. 7589 Include port number in process title for network daemons. Suggested 7590 by Kyle Jones of UUNET. 7591 Send ``double bounces'' (errors that occur when sending an error 7592 message) to the address indicated in the DoubleBounceAddress 7593 option (default: postmaster). Previously they were always 7594 sent to postmaster. Suggested by Kyle Jones of UUNET. 7595 Add new mode, -bD, that acts like -bd in all respects except that 7596 it runs in foreground. This is useful for using with a 7597 wrapper that "watches" system services. Suggested by Kyle 7598 Jones of UUNET. 7599 Fix botch in spacing around (parenthesized) comments in addresses 7600 when the comment comes before the address. Patch from 7601 Motonori Nakamura of Kyoto University. 7602 Use the prefix "Postmaster notify" on the Subject: lines of messages 7603 that are being bounced to postmaster, rather than "Returned 7604 mail". This permits the person who is postmaster more 7605 easily determine what messages are to their role as 7606 postmaster versus bounces to mail they actually sent. Based 7607 on a suggestion by Motonori Nakamura. 7608 Add new value "time" for QueueSortOrder option; this causes the queue 7609 to be sorted strictly by the time of submission. Note that 7610 this can cause very bad behavior over slow lines (because 7611 large jobs will tend to delay small jobs) and on nodes with 7612 heavy traffic (because old things in the queue for hosts that 7613 are down delay processing of new jobs). Also, this does not 7614 guarantee that jobs will be delivered in submission order 7615 unless you also set DeliveryMode=queue. In general, it should 7616 probably only be used on the command line, and only in 7617 conjunction with -qRhost.domain. In fact, there are very few 7618 cases where it should be used at all. Based on an 7619 implementation by Motonori Nakamura. 7620 If a map lookup in ruleset 5 returns tempfail, queue the message in 7621 the same manner as other rulesets. Previously a temporary 7622 failure in ruleset 5 was ignored. Patch from Booker Bense 7623 of Stanford University. 7624 Don't proceed to the next MX host if an SMTP MAIL command returns a 7625 5yz (permanent failure) code. The next MX host will still be 7626 tried if the connection cannot be opened in the first place 7627 or if the MAIL command returns a 4yz (temporary failure) code. 7628 (It's hard to know what to do here, since neither RFC 974 nor 7629 RFC 1123 specify when to proceed to the next MX host.) 7630 Suggested by Jonathan Kamens of OpenVision, Inc. 7631 Add new "-t" flag for map definitions (the "K" line in the .cf file). 7632 This causes map lookups that get a temporary failure (e.g., 7633 name server failure) to _not_ defer the delivery of the 7634 message. This should only be used if your configuration file 7635 is prepared to do something sensible in this case. Based on 7636 an idea by Gregory Shapiro of WPI. 7637 Fix problem finding network interface addresses. Patch from 7638 Motonori Nakamura. 7639 Don't reject qf entries that are not owned by your effective uid if 7640 you are not running set-user-ID; this makes management of 7641 certain kinds of firewall setups difficult. Patch 7642 suggested by Eamonn Coleman of Qualcomm. 7643 Add persistent host status. This keeps the information normally 7644 maintained within a single queue run in disk files that are 7645 shared between sendmail instances. The HostStatusDirectory 7646 is the directory in which the information is maintained. If 7647 not set, persistent host status is turned off. If not a full 7648 pathname, it is relative to the queue directory. A common 7649 value is ".hoststat". 7650 There are also two new operation modes: 7651 * -bh prints the status of hosts that have had recent 7652 connections. 7653 * -bH purges the host statuses. No attempt is made to save 7654 recent status information. 7655 This feature was originally written by Paul Vixie of Vixie 7656 Enterprises for KJS and adapted for V8 by Mark Lovell of 7657 Bigrock Consulting. Paul's funding of Mark and Mark's patience 7658 with my insistence that things fit cleanly into the V8 7659 framework is gratefully appreciated. 7660 New SingleThreadDelivery option (requires HostStatusDirectory to 7661 operate). Avoids letting two sendmails on the local machine 7662 open connections to the same remote host at the same time. 7663 This reduces load on the other machine, but can cause mail to 7664 be delayed (for example, if one sendmail is delivering a huge 7665 message, other sendmails won't be able to send even small 7666 messages). Also, it requires another file descriptor (for the 7667 lock file) per connection, so you may have to reduce 7668 ConnectionCacheSize to avoid running out of per-process 7669 file descriptors. Based on the persistent host status code 7670 contributed by Paul Vixie and Mark Lovell. 7671 Allow sending to non-simple files (e.g., /dev/null) even if the 7672 SafeFileEnvironment option is set. Problem noted by Bryan 7673 Costales. 7674 The -qR flag mistakenly matched flags in the "R" line of the queue 7675 file. Problem noted by Bryan Costales. 7676 If a job was aborted using the interrupt signal (e.g., control-C from 7677 the keyboard), on some occasions an empty df file would be 7678 left around; these would collect in the queue directory. 7679 Problem noted by Bryan Costales. 7680 Change the makesendmail script to enhance the search for Makefiles 7681 based on release number. For example, on SunOS 5.5.1, it will 7682 search for Makefile.SunOS.5.5.1, Makefile.SunOS.5.5, and then 7683 Makefile.SunOS.5.x (in addition to the other rules, e.g., 7684 adding $arch). Problem noted by Jason Mastaler of Atlanta 7685 Webmasters. 7686 When creating maps using "newaliases", always map the keys to lower 7687 case when creating the map unless the -f flag is specified on 7688 the map itself. Previously this was done based on the F=u 7689 flag in the local mailer, which meant you could create aliases 7690 that you could never access. Problem noted by Bob Wu of DEC. 7691 When a job was read from the queue, the bits causing notification on 7692 failure or delay were always set. This caused those 7693 notifications to be sent even if NOTIFY=NEVER had been 7694 specified. Problem noted by Steve Hubert of the University 7695 of Washington, Seattle. 7696 Add new configurable routine validate_connection (in conf.c). This 7697 lets you decide if you are willing to accept traffic from 7698 this host. If it returns FALSE, all SMTP commands will return 7699 "550 Access denied". -DTCPWRAPPERS will include support for 7700 TCP wrappers; you will need to add -lwrap to the link line. 7701 (See src/READ_ME for details.) 7702 Don't include the "THIS IS A WARNING MESSAGE ONLY" banner on postmaster 7703 bounces. Some people seemed to think that this could be 7704 confusing (even though it is true). Suggested by Motonori 7705 Nakamura. 7706 Add new RunAsUser option; this causes sendmail to do a setuid to that 7707 user early in processing to avoid potential security problems. 7708 However, this means that all .forward and :include: files must 7709 be readable by that user, and all files to be written must be 7710 writable by that user and all programs will be executed by that 7711 user. It is also incompatible with the SafeFileEnvironment 7712 option. In other words, it may not actually add much to 7713 security. However, it should be useful on firewalls and other 7714 places where users don't have accounts and the aliases file is 7715 well constrained. 7716 Add Timeout.iconnect. This is like Timeout.connect except it is used 7717 only on the first attempt to delivery to an address. It could 7718 be set to be lower than Timeout.connect on the principle that 7719 the mail should go through quickly to responsive hosts; less 7720 responsive hosts get to wait for the next queue run. 7721 Fix a problem on Solaris that occasionally causes programs 7722 (such as vacation) to hang with their standard input connected 7723 to a UDP port. It also created some signal handling problems. 7724 The problems turned out to be an interaction between vfork(2) 7725 and some of the libraries, particularly NIS/NIS+. I am 7726 indebted to Tor Egge <tegge@idt.ntnu.no> for this fix. 7727 Change user class map to do the same matching that actual delivery 7728 will do instead of just a /etc/passwd lookup. This adds 7729 fuzzy matching to the user map. Patch from Dan Oscarsson. 7730 The Timeout.* options are not safe -- they can be used to create a 7731 denial-of-service attack. Problem noted by Christophe 7732 Wolfhugel. 7733 Don't send PostmasterCopy messages in the event of a "delayed" 7734 notification. Suggested by Barry Bouwsma. 7735 Don't advertise "VERB" ESMTP extension if the "noexpn" privacy 7736 option is set, since this disables VERB mode. Suggested 7737 by John Hawkinson of MIT. 7738 Complain if the QueueDirectory (Q) option is not set. Problem noted 7739 by Motonori Nakamura of Kyoto University. 7740 Only queue messages on transient .forward open failures if there 7741 were no successful opens. The previous behavior caused it 7742 to queue even if a "fall back" .forward was found. Problem 7743 noted by Ann-Kian Yeo of the Dept. of Information Systems 7744 and Computer Science (DISCS), NUS, Singapore. 7745 Don't do 8->7 bit conversions when bouncing a MIME message that 7746 is bouncing because of a MIME error during 8->7 bit conversion; 7747 the encapsulated message will bounce again, causing a loop. 7748 Problem noted by Steve Hubert of the University of Washington. 7749 Create xf (transcript) files using the TempFileMode option value 7750 instead of 0644. Suggested by Ann-Kian Yeo of the 7751 National University of Singapore. 7752 Print errors if setgid/setuid/etc. fail during delivery. This helps 7753 detect cases where DefaultUser is set to something that the 7754 system can't cope with. 7755 PORTABILITY FIXES: 7756 Support for AIX/RS 2.2.1 from Mark Whetzel of Western 7757 Atlas International. 7758 Patches for Intel Paragon OSF/1 1.3 from Leo Bicknell 7759 <bicknell@ufp.org>. 7760 On DEC OSF/1 3.2 and earlier, the MatchGECOS code would only 7761 work on the first recipient of a message due to a 7762 bug in the getpwent family. If this is something you 7763 use, you can define DEC_OSF_BROKEN_GETPWENT=1 for a 7764 workaround. From Maximum Entropy of Sanford C. 7765 Bernstein and Associates. 7766 FreeBSD 1.1.5.1 uname -r returns a string containing 7767 parentheses, which breaks makesendmail. Reported 7768 by Piero Serini <piero@strider.ibenet.it>. 7769 Sequent DYNIX/ptx 4.0.2 patches from Jack Woolley of 7770 Systems and Computer Technology Corporation. 7771 Solaris 2.x: omit the UUCP grade parameter (-g flag) because 7772 it is system-dependent. Problem noted by J.J. Bailey 7773 of Bailey Computer Consulting. 7774 Pyramid NILE running DC/OSx support from Earle F. Ake of 7775 Hassler Communication Systems Technology, Inc. 7776 HP-UX 10.x compile glitches, reported by Anne Brink of the 7777 U.S. Army and James Byrne of Harte & Lyne Limited. 7778 NetBSD from Matthew Green of the NetBSD crew. 7779 SCO 5.x from Keith Reynolds of SCO. 7780 IRIX 6.2 from Robert Tarrall of the University of 7781 Colorado and Kari Hurtta of the Finnish Meteorological 7782 Institute. 7783 UXP/DS (Fujitsu/ICL DS/90 series) support from Diego R. 7784 Lopez, CICA (Seville). 7785 NCR SVR4 MP-RAS 3.x support from Tom Moore of NCR. 7786 PTX 3.2.0 from Kenneth Stailey of the US Department of Labor 7787 Employment Standards Administration. 7788 Altos System V (5.3.1) from Tim Rice of Multitalents. 7789 Concurrent Systems Corporation Maxion from Donald R. Laster 7790 Jr. 7791 NetInfo maps (improved debugging and multi-valued aliases) 7792 from Adrian Steinmann of Steinmann Consulting. 7793 ConvexOS 11.5 (including SecureWare C2 and the Share Scheduler) 7794 from Eric Schnoebelen of Convex. 7795 Linux 2.0 mail.local patches from Horst von Brand. 7796 NEXTSTEP 3.x compilation from Robert La Ferla. 7797 NEXTSTEP 3.x code changes from Allan J. Nathanson of NeXT. 7798 Solaris 2.5 configuration fixes for mail.local by Jim Davis 7799 of the University of Arizona. 7800 Solaris 2.5 has a working setreuid. Noted by David Linn of 7801 Vanderbilt University. 7802 Solaris changes for praliases, makemap, mailstats, and smrsh. 7803 Previously you had to add -DSOLARIS in Makefile.dist; 7804 this auto-detects. Based on a patch from Randall 7805 Winchester of the University of Maryland. 7806 CONFIG: add generic-nextstep3.3.mc file. Contributed by 7807 Robert La Ferla of Hot Software. 7808 CONFIG: allow mailertables to resolve to ``error:code message'' 7809 (where "code" is an exit status) on domains (previously 7810 worked only on hosts). Patch from Cor Bosman of Xs4all 7811 Foundation. 7812 CONFIG: hooks for IPv6-style domain literals. 7813 CONFIG: predefine ALIAS_FILE and change the prototype file so that 7814 if it is undefined the AliasFile option is never set; this 7815 should be transparent for most everyone. Suggested by John 7816 Myers of CMU. 7817 CONFIG: add FEATURE(limited_masquerade). Without this feature, any 7818 domain listed in $=w is masqueraded. With it, only those 7819 domains listed in a MASQUERADE_DOMAIN macro are masqueraded. 7820 CONFIG: add FEATURE(masquerade_entire_domain). This causes 7821 masquerading specified by MASQUERADE_DOMAIN to apply to all 7822 hosts under those domains as well as the domain headers 7823 themselves. For example, if a configuration had 7824 MASQUERADE_DOMAIN(foo.com), then without this feature only 7825 foo.com would be masqueraded; with it, *.foo.com would be 7826 masqueraded as well. Based on an implementation by Richard 7827 (Pug) Bainter of U. Texas. 7828 CONFIG: add FEATURE(genericstable) to do a more general rewriting of 7829 outgoing addresses. Defaults to ``hash -o /etc/genericstable''. 7830 Keys are user names; values are outgoing mail addresses. Yes, 7831 this does overlap with the user database, and figuring out 7832 just when to use which one may be tricky. Based on code 7833 contributed by Richard (Pug) Bainter of U. Texas with updates 7834 from Per Hedeland of Ericsson. 7835 CONFIG: add FEATURE(virtusertable) to do generalized rewriting of 7836 incoming addresses. Defaults to ``hash -o /etc/virtusertable''. 7837 Keys are either fully qualified addresses or just the host 7838 part (with the @ sign). For example, a table containing: 7839 info@foo.com foo-info 7840 info@bar.com bar-info 7841 @baz.org jane@elsewhere.net 7842 would send all mail destined for info@foo.com to foo-info 7843 (which is presumably an alias), mail addressed to info@bar.com 7844 to bar-info, and anything addressed to anyone at baz.org will 7845 be sent to jane@elsewhere.net. The names foo.com, bar.com, 7846 and baz.org must all be in $=w. Based on discussions with 7847 a great many people. 7848 CONFIG: add nullclient configurations to define SMTP_MAILER_FLAGS. 7849 Suggested by Richard Bainter. 7850 CONFIG: add FAX_MAILER_ARGS to tweak the arguments passed to the 7851 "fax" mailer. 7852 CONFIG: allow mailertable entries to resolve to local:user; this 7853 passes the original user@host in to procmail-style local 7854 mailers as the "detail" information to allow them to do 7855 additional clever processing. From Joe Pruett of 7856 Teleport Corporation. Delivery to the original user can 7857 be done by specifying "local:" (with nothing after the colon). 7858 CONFIG: allow any context that takes "mailer:domain" to also take 7859 "mailer:user@domain" to force mailing to the given user; 7860 "local:user" can also be used to do local delivery. This 7861 applies on *_RELAY and in the mailertable entries. Based 7862 on a suggestion by Ribert Kiessling of Easynet. 7863 CONFIG: Allow FEATURE(bestmx_is_local) to take an argument that 7864 limits the possible domains; this reduces the number of DNS 7865 lookups required to support this feature. For example, 7866 FEATURE(bestmx_is_local, my.site.com) limits the lookups 7867 to domains under my.site.com. Code contributed by Anthony 7868 Thyssen <anthony@cit.gu.edu.au>. 7869 CONFIG: LOCAL_RULESETS introduces any locally defined rulesets, 7870 such as the check_rcpt ruleset. Suggested by Gregory Shapiro 7871 of WPI. 7872 CONFIG: MAILER_DEFINITIONS introduces any mailer definitions, in the 7873 event you have to define local mailers. Suggested by 7874 Gregory Shapiro of WPI. 7875 CONFIG: fix cases where a three- (or more-) stage route-addr could 7876 be misinterpreted as a list:...; syntax. Based on a patch by 7877 Vlado Potisk <Vlado_Potisk@tempest.sk>. 7878 CONFIG: Fix masquerading of UUCP addresses when the UUCP relay is 7879 remotely connected. The address host!user was being 7880 converted to host!user@thishost instead of host!user@uurelay. 7881 Problem noted by William Gianopoulos of Raytheon Company. 7882 CONFIG: add confTO_ICONNECT to set Timeout.iconnect. 7883 CONFIG: change FEATURE(redirect) message from "User not local" to 7884 "User has moved"; the former wording was confusing if the 7885 new address is still on the local host. Based on a suggestion 7886 by Andreas Luik. 7887 CONFIG: add support in FEATURE(nullclient) for $=E (exposed users). 7888 However, the class is not pre-initialized to contain root. 7889 Suggested by Gregory Neil Shapiro. 7890 CONTRIB: Remove XLA code at the request of the author, Christophe 7891 Wolfhugel. 7892 CONTRIB: Add re-mqueue.pl, contributed by Paul Pomes of Qualcomm. 7893 MAIL.LOCAL: make it possible to compile mail.local on Solaris. Note 7894 well: this produces a slightly different mailbox format (no 7895 Content-Length: headers), file ownerships and modes are 7896 different (not owned by group mail; mode 600 instead of 660), 7897 and the local mailer flags will have to be tweaked (make them 7898 match bsd4.4) in order to use this mailer. Patches from Paul 7899 Hammann of the Missouri Research and Education Network. 7900 MAIL.LOCAL: in some cases it could return EX_OK even though there 7901 was a delivery error, such as if the ownership on the file 7902 was wrong or the mode changed between the initial stat and 7903 the open. Problem reported by William Colburn of the New 7904 Mexico Institute of Mining and Technology. 7905 MAILSTATS: handle zero length files more reliably. Patch from Bryan 7906 Costales. 7907 MAILSTATS: add man page contributed by Keith Bostic of BSDI. 7908 MAKEMAP: The -d flag (to allow duplicate keys) to a btree map wasn't 7909 honored. Fix from Michael Scott Shappe. 7910 PRALIASES: add man page contributed by Keith Bostic of BSDI. 7911 NEW FILES: 7912 src/Makefiles/Makefile.AIX.2 7913 src/Makefiles/Makefile.IRIX.6.2 7914 src/Makefiles/Makefile.maxion 7915 src/Makefiles/Makefile.NCR.MP-RAS.3.x 7916 src/Makefiles/Makefile.SCO.5.x 7917 src/Makefiles/Makefile.UXPDSV20 7918 mailstats/mailstats.8 7919 praliases/praliases.8 7920 cf/cf/generic-nextstep3.3.mc 7921 cf/feature/genericstable.m4 7922 cf/feature/limited_masquerade.m4 7923 cf/feature/masquerade_entire_domain.m4 7924 cf/feature/virtusertable.m4 7925 cf/ostype/aix2.m4 7926 cf/ostype/altos.m4 7927 cf/ostype/maxion.m4 7928 cf/ostype/solaris2.ml.m4 7929 cf/ostype/uxpds.m4 7930 contrib/re-mqueue.pl 7931 DELETED FILES: 7932 src/Makefiles/Makefile.Solaris 7933 contrib/xla/README 7934 contrib/xla/xla.c 7935 RENAMED FILES: 7936 src/Makefiles/Makefile.NCR3000 => Makefile.NCR.MP-RAS.2.x 7937 src/Makefiles/Makefile.SCO.3.2v4.2 => Makefile.SCO.4.2 7938 src/Makefiles/Makefile.UXPDS => Makefile.UXPDSV10 7939 src/Makefiles/Makefile.NeXT => Makefile.NeXT.2.x 7940 src/Makefiles/Makefile.NEXTSTEP => Makefile.NeXT.3.x 7941 79428.7.6/8.7.3 1996/09/17 7943 SECURITY: It is possible to force getpwuid to fail when writing the 7944 queue file, causing sendmail to fall back to running programs 7945 as the default user. This is not exploitable from off-site. 7946 Workarounds include using a unique user for the DefaultUser 7947 (old u & g options) and using smrsh as the local shell. 7948 SECURITY: fix some buffer overruns; in at least one case this allows 7949 a local user to get root. This is not known to be exploitable 7950 from off-site. The workaround is to disable chfn(1) commands. 7951 79528.7.5/8.7.3 1996/03/04 7953 Fix glitch in 8.7.4 when putting certain internal lines; this can 7954 in some case cause connections to hang or messages to have 7955 extra spaces in odd places. Patch from Eric Wassenaar; 7956 reports from Eric Hall of Chiron Corporation, Stephen 7957 Hansen of Stanford University, Dean Gaudet of HotWired, 7958 and others. 7959 79608.7.4/8.7.3 1996/02/18 7961 SECURITY: In some cases it was still possible for an attacker to 7962 insert newlines into a queue file, thus allowing access to 7963 any user (except root). 7964 CONFIG: no changes -- it is not a bug that the configuration 7965 version number is unchanged. 7966 79678.7.3/8.7.3 1995/12/03 7968 Fix botch in name server timeout in RCPT code; this problem caused 7969 two responses in SMTP, which breaks things horribly. Fix 7970 from Gregory Neil Shapiro of WPI. 7971 Verify that L= value on M lines cannot be negative, which could cause 7972 negative array subscripting. Not a security problem since 7973 this has to be in the config file, but it could have caused 7974 core dumps. Pointed out by Bryan Costales. 7975 Fix -d21 debug output for long macro names. Pointed out by Bryan 7976 Costales. 7977 PORTABILITY FIXES: 7978 SCO doesn't have ftruncate. From Bill Aten of Computerizers. 7979 IBM's version of arpa/nameser.h defaults to the wrong byte 7980 order. Tweak it to work properly. Based on fixes 7981 from Fletcher Mattox of UTexas and Betty Lee of 7982 Stanford University. 7983 CONFIG: add confHOSTS_FILE m4 variable to set HostsFile option. 7984 Deficiency pointed out by Bryan Costales of ICSI. 7985 79868.7.2/8.7.2 1995/11/19 7987 REALLY fix the backslash escapes in SmtpGreetingMessage, 7988 OperatorChars, and UnixFromLine options. They were not 7989 properly repaired in 8.7.1. 7990 Completely delete the Bcc: header if and only if there are other 7991 valid recipient headers (To:, Cc: or Apparently-To:, the 7992 last being a historic botch, of course). If Bcc: is the 7993 only recipient header in the message, its value is tossed, 7994 but the header name is kept. The old behavior (always keep 7995 the header name and toss the value) allowed primary recipients 7996 to see that a Bcc: went to _someone_. 7997 Include queue id on ``Authentication-Warning: <host>: <user> set 7998 sender to <address> using -f'' syslog messages. Suggested 7999 by Kari Hurtta. 8000 If a sequence or switch map lookup entry gets a tempfail but then 8001 continues on to another map type, but the name is not found, 8002 return a temporary failure from the sequence or switch map. 8003 For example, if hosts search ``dns files'' and DNS fails 8004 with a tempfail, the hosts map will go on and search files, 8005 but if it fails the whole thing should be a tempfail, not 8006 a permanent (host unknown) failure, even though that is the 8007 failure in the hosts.files map. This error caused hard 8008 bounces when it should have requeued. 8009 Aliases to files such as /users/bar/foo/inbox, with /users/bar/foo 8010 owned by bar mode 700 and inbox being set-user-ID bar stopped 8011 working properly due to excessive paranoia. Pointed out by 8012 John Hawkinson of Panix. 8013 An SMTP RCPT command referencing a host that gave a nameserver 8014 timeout would return a 451 command (8.6 accepted it and 8015 queued it locally). Revert to the 8.6 behavior in order 8016 to simplify queue management for clustered systems. Suggested 8017 by Gregory Neil Shapiro of WPI. The same problem could break 8018 MH, which assumes that the SMTP session will succeed (tsk, tsk 8019 -- mail gets lost!); this was pointed out by Stuart Pook of 8020 Infobiogen. 8021 Fix possible buffer overflow in munchstring(). This was not a security 8022 problem because you couldn't specify any argument to this 8023 without first giving up root privileges, but it is still a 8024 good idea to avoid future problems. Problem noted by John 8025 Hawkinson and Sam Hartman of MIT. 8026 ``452 Out of disk space for temp file'' messages weren't being 8027 printed. Fix from David Perlin of Nanosoft. 8028 Don't advertise the ESMTP DSN extension if the SendMimeErrors option 8029 is not set, since this is required to get the actual DSNs 8030 created. Problem pointed out by John Gardiner Myers of CMU. 8031 Log permission problems that cause .forward and :include: files to 8032 be untrusted or ignored on log level 12 and higher. Suggested 8033 by Randy Martin of Clemson University. 8034 Allow user ids in U= clauses of M lines to have hyphens and 8035 underscores. 8036 Fix overcounting of recipients -- only happened when sending to an 8037 alias. Pointed out by Mark Andrews of SGI and Jack Woolley 8038 of Systems and Computer Technology Corporation. 8039 If a message is sent to an address that fails, the error message that 8040 is returned could show some extraneous "success" information 8041 included even if the user did not request success notification, 8042 which was confusing. Pointed out by Allan Johannesen of WPI. 8043 Config files that had no AliasFile definition were defaulting to 8044 using /etc/aliases; this caused problems with nullclient 8045 configurations. Change it back to the 8.6 semantics of 8046 having no local alias file unless it is declared. Problem 8047 noted by Charles Karney of Princeton University. 8048 Fix compile problem if NOTUNIX is defined. Pointed out by Bryan 8049 Costales of ICSI. 8050 Map lookups of class "userdb" maps were always case sensitive; they 8051 should be controlled by the -f flag like other maps. Pointed 8052 out by Bjart Kvarme <bjart.kvarme@usit.uio.no>. 8053 Fix problem that caused some addresses to be passed through ruleset 5 8054 even when they were tagged as "sticky" by prefixing the 8055 address with an "@". Patch from Thomas Dwyer III of Michigan 8056 Technological University. 8057 When converting a message to Quoted-Printable, prevent any lines with 8058 dots alone on a line by themselves. This is because of the 8059 preponderance of broken mailers that still get this wrong. 8060 Code contributed by Per Hedeland of Ericsson. 8061 Fix F{macro}/file construct -- it previously did nothing. Pointed 8062 out by Bjart Kvarme of USIT/UiO (Norway). 8063 Announce whether a cached connection is SMTP or ESMTP (in -v mode). 8064 Requested by Allan Johannesen. 8065 Delete check for text format of alias files -- it should be legal 8066 to have the database format of the alias files without the 8067 text version. Problem pointed out by Joe Rhett of Navigist, 8068 Inc. 8069 If "Ot" was specified with no value, the TZ variable was not properly 8070 imported from the environment. Pointed out by Frank Crawford 8071 <frank@ansto.gov.au>. 8072 Some architectures core dumped on "program" maps that didn't have 8073 extra arguments. Patch from Booker C. Bense of Stanford 8074 University. 8075 Queue run processes would re-spawn daemons when given a SIGHUP; only 8076 the parent should do this. Fix from Brian Coan of the 8077 Association for Progressive Communications. 8078 If MinQueueAge was set and a message was considered but not run 8079 during a queue run and the Timeout.queuereturn interval was 8080 reached, a "timed out" error message would be returned that 8081 didn't include the failed address (and claimed to be a warning 8082 even though it was fatal). The fix is to not return such 8083 messages until they are actually tried, i.e., in the next 8084 MinQueueAge interval. Problem noted by Rein Tollevik of 8085 SINTEF RUNIT, Oslo. 8086 Add HES_GETMAILHOST compile flag to support MIT Hesiod distributions 8087 that have the hes_getmailhost() routine. DEC Hesiod 8088 distributions do not have this routine. Based on a patch 8089 from Betty Lee of Stanford University. 8090 Extensive cleanups to map open code to handle a locking race condition 8091 in ndbm, hash, and btree format database files on some (most 8092 non-4.4-BSD based) OS architectures. This should solve the 8093 occasional "user unknown" problem during alias rebuilds that 8094 has plagued me for quite some time. Based on a patch from 8095 Thomas Dwyer III of Michigan Technological University. 8096 PORTABILITY FIXES: 8097 Solaris: Change location of newaliases and mailq from 8098 /usr/ucb to /usr/bin to match Sun settings. From 8099 James B. Davis of TCI. 8100 DomainOS: Makefile.DomainOS doesn't require -ldbm. From 8101 Don Lewis of Silicon Systems. 8102 HP-UX 10: rename Makefile.HP-UX.10 => Makefile.HP-UX.10.x 8103 so that the makesendmail script will find it. Pointed 8104 out by Richard Allen of the University of Iceland. 8105 Also, use -Aa -D_HPUX_SOURCE instead of -Ae, which 8106 isn't supported on all compilers. 8107 UXPDS: compilation fixes from Diego R. Lopez. 8108 CONFIG: FAX mailer wasn't setting .FAX as a pseudo-domain unless 8109 you also had a FAX_RELAY. From Thomas.Tornblom@Hax.SE. 8110 CONFIG: Minor glitch in S21 -- attachment of local domain name 8111 didn't have trailing dot. From Jim Hickstein of Teradyne. 8112 CONFIG: Fix best_mx_is_local feature to allow nested addresses such as 8113 user%host@thishost. From Claude Scarpelli of Infobiogen 8114 (France). 8115 CONFIG: OSTYPE(hpux10) failed to define the location of the help file. 8116 Pointed out by Hannu Martikka of Nokia Telecommunications. 8117 CONFIG: Diagnose some inappropriate ordering in configuration files, 8118 such as FEATURE(smrsh) listed after MAILER(local). Based on 8119 a bug report submitted by Paul Hoffman of Proper Publishing. 8120 CONFIG: Make OSTYPE files consistently not override settings that 8121 have already been set. Previously it worked differently 8122 for different files. 8123 CONFIG: Change relay mailer to do masquerading like 8.6 did. My take 8124 is that this is wrong, but the change was causing problems 8125 for some people. From Per Hedeland of Ericsson. 8126 CONTRIB: bitdomain.c patch from John Gardiner Myers <jgm+@CMU.EDU>; 8127 portability changes for Posix environments (no functional 8128 changes). 8129 81308.7.1/8.7.1 1995/10/01 8131 Old macros that have become options (SmtpGreetingMessage, 8132 OperatorChars, and UnixFromLine) didn't allow backslash 8133 escapes in the options, where they previously had. Bug 8134 pointed out by John Hawkinson of MIT. 8135 Fix strange case of an executable called by a program map that 8136 returns a value but also a non-zero exit status; this 8137 would give contradictory results in the higher level; in 8138 particular, the default clause in the map lookup would be 8139 ignored. Change to ignore the value if the program returns 8140 non-zero exit status. From Tom Moore of AT&T GIS. 8141 Shorten parameters passed to syslog() in some contexts to avoid a 8142 bug in many vendors' implementations of that routine. Although 8143 this isn't really a bug in sendmail per se, and my solution 8144 has to assume that syslog() has at least a 1K buffer size 8145 internally (I know some vendors have shortened this 8146 dramatically -- they're on their own), sendmail is a popular 8147 target. Also, limit the size of %s arguments in sprintf. 8148 These both have possible security implications. Solutions 8149 suggested by Casper Dik of Sun's Network Security Group 8150 (Holland), Mark Seiden, and others. 8151 Fix a problem that might cause a non-standard -B (body type) 8152 parameter to be passed to the next server with undefined 8153 results. This could have security implications. 8154 If a filesystem was at > 100% utilization, the freediskspace() 8155 routine incorrectly returned an error rather than zero. 8156 Problem noted by G. Paul Ziemba of Alantec. 8157 Change MX sort order so that local hostnames (those in $=w) always 8158 sort first within a given preference. This forces the bestmx 8159 map to always return the local host first, if it is included 8160 in the list of highest priority MX records. From K. Robert 8161 Elz. 8162 Avoid some possible null pointer dereferences. Fixes from Randy 8163 Martin <WOLF@CLEMSON.EDU> 8164 When sendmail starts up on systems that have no fully qualified 8165 domain name (FQDN) anywhere in the first matching host map 8166 (e.g., /etc/hosts if the hosts service searches "files dns"), 8167 sendmail would sleep to try to find a FQDN, which it really 8168 really needs. This has been changed to fall through to the 8169 next map type if it can't find a FQDN -- i.e., if the hosts 8170 file doesn't have a FQDN, it will try dns even though the 8171 short name was found in /etc/hosts. This is probably a crock, 8172 but many people have hosts files without FQDNs. Remember: 8173 domain names are your friends. 8174 Log a high-priority message if you can't find your FQDN during startup. 8175 Suggested by Simon Barnes of Schlumberger Limited. 8176 When using Hesiod, initialize it early to improve error reporting. 8177 Patch from Don Lewis of Silicon Systems, Inc. 8178 Apparently at least some versions of Linux have a 90 !minute! TCP 8179 connection timeout in the kernel. Add a new "connect" timeout 8180 to limit this time. Defaults to zero (use whatever the 8181 kernel provides). Based on code contributed by J.R. Oldroyd 8182 of TerraNet. 8183 Under some circumstances, a failed message would not be properly 8184 removed from the queue, causing tons of bogus error messages. 8185 (This fix eliminates the problematic EF_KEEPQUEUE flag.) 8186 Problem noted by Allan E Johannesen and Gregory Neil Shapiro 8187 of WPI. 8188 PORTABILITY FIXES: 8189 On IRIX 5.x, there was an inconsistency in the setting 8190 of sendmail.st location. Change the Makefile to 8191 install it in /var/sendmail.st to match the OSTYPE 8192 file and SGI standards. From Andre 8193 <andre@curry.zfe.siemens.de>. 8194 Support for Fujitsu/ICL UXP/DS (For the DS/90 Series) 8195 from Diego R. Lopez <drlopez@cica.es>. 8196 Linux compilation patches from J.R. Oldroyd of TerraNet, Inc. 8197 LUNA 2 Mach patches from Motonori Nakamura. 8198 SunOS Makefile was including -ldbm, which is for the old 8199 dbm library. The ndbm library is part of libc. 8200 CONFIG: avoid bouncing ``user@host.'' (note trailing dot) with 8201 ``local configuration error'' in nullclient configuration. 8202 Patch from Gregory Neil Shapiro of WPI. 8203 CONFIG: don't allow an alias file in nullclient configurations -- 8204 since all addresses are relayed, they give errors during 8205 rebuild. Suggested by Per Hedeland of Ericsson. 8206 CONFIG: local mailer on Solaris 2 should always get a -f flag because 8207 otherwise the F=S causes the From_ line to imply that root is 8208 the sender. Problem pointed out by Claude Scarpelli of 8209 Infobiogen (France). 8210 NEW FILES: 8211 cf/feature/use_ct_file.m4 (omitted from 8.7 by mistake) 8212 src/Makefiles/Makefile.KSR (omitted from 8.7 by mistake) 8213 src/Makefiles/Makefile.UXPDS 8214 82158.7/8.7 1995/09/16 8216 Fix a problem that could cause sendmail to run out of file 8217 descriptors due to a trashed data structure after a 8218 vfork. Fix from Brian Coan of the Institute for 8219 Global Communications. 8220 Change the VRFY response if you have disabled VRFY -- some 8221 people seemed to think that it was too rude. 8222 Avoid reference to uninitialized file descriptor if HASFLOCK 8223 was not defined. This was used "safely" in the sense 8224 that it only did a stat, but it would have set the 8225 map modification time improperly. Problem pointed out 8226 by Roy Mongiovi of Georgia Tech. 8227 Clean up the Subject: line on warning messages and return 8228 receipts so that they don't say "Returned mail:"; this 8229 can be confusing. 8230 Move ruleset entry/exit debugging from 21.2 to 21.1 -- this is 8231 useful enough to make it worthwhile printing on "-d". 8232 Avoid logging alias statistics every time you read the alias 8233 file on systems with no database method compiled in. 8234 If you have a name with a trailing dot, and you try looking it 8235 up using gethostbyname without the dot (for /etc/hosts 8236 compatibility), be sure to turn off RES_DEFNAMES and 8237 RES_DNSRCH to avoid finding the wrong name accidentally. 8238 Problem noted by Charles Amos of the University of 8239 Maryland. 8240 Don't do timeouts in collect if you are not running SMTP. 8241 There is nothing that says you can't have a long 8242 running program piped into sendmail (possibly via 8243 /bin/mail, which just execs sendmail). Problem reported 8244 by Don "Truck" Lewis of Silicon Systems. 8245 Try gethostbyname() even if the DNS lookup fails iff option I 8246 is not set. This allows you to have hosts listed in 8247 NIS or /etc/hosts that are not known to DNS. It's normally 8248 a bad idea, but can be useful on firewall machines. This 8249 should really be broken out on a separate flag, I suppose. 8250 Avoid compile warnings against BIND 4.9.3, which uses function 8251 prototypes. From Don Lewis of Silicon Systems. 8252 Avoid possible incorrect diagnosis of DNS-related errors caused 8253 by things like attempts to resolve uucp names using 8254 $[ ... $] -- the fix is to clear h_errno at appropriate 8255 times. From Kyle Jones of UUNET. 8256 SECURITY: avoid denial-of-service attacks possible by destroying 8257 the alias database file by setting resource limits low. 8258 This involves adding two new compile-time options: 8259 HASSETRLIMIT (indicating that setrlimit(2) support is 8260 available) and HASULIMIT (indicating that ulimit(2) support 8261 is available -- the Release 3 form is used). The former 8262 is assumed on BSD-based systems, the latter on System 8263 V-based systems. Attack noted by Phil Brandenberger of 8264 Swarthmore University. 8265 New syntaxes in test (-bt) mode: 8266 ``.Dmvalue'' will define macro "m" to "value". 8267 ``.Ccvalue'' will add "value" to class "c". 8268 ``=Sruleset'' will dump the contents of the indicated 8269 ruleset. 8270 ``=M'' will display the known mailers. 8271 ``-ddebug-spec'' is equivalent to the command-line 8272 -d debug flag. 8273 ``$m'' will print the value of macro $m. 8274 ``$=c'' will print the contents of class $=c. 8275 ``/mx host'' returns the MX records for ``host''. 8276 ``/parse address'' will parse address, returning the value of 8277 crackaddr (essentially, the comment information) 8278 and the parsed address. 8279 ``/try mailer address'' will rewrite address into the form 8280 it will have when presented to the indicated mailer. 8281 ``/tryflags flags'' will set flags used by parsing. The 8282 flags can be `H' for header or `E' for envelope, 8283 and `S' for sender or `R' for recipient. These 8284 can be combined, so `HR' sets flags for header 8285 recipients. 8286 ``/canon hostname'' will try to canonify hostname and 8287 return the result. 8288 ``/map mapname key'' will look up `key' in the indicated 8289 `mapname' and return the result. 8290 Somewhat better handling of UNIX-domain socket addresses -- it 8291 should show the pathname rather than hex bytes. 8292 Restore ``-ba'' mode -- this reads a file from stdin and parses 8293 the header for envelope sender information and uses 8294 CR-LF as message terminators. It was thought to be 8295 obsolete (used only for Arpanet NCP protocols), but it 8296 turns out that the UK ``Grey Book'' protocols require 8297 that functionality. 8298 Fix a fix in previous release -- if gethostname and gethostbyname 8299 return a name without dots, and if an attempt to canonify 8300 that name fails, wait one minute and try again. This can 8301 result in an extra 60 second delay on startup if your system 8302 hostname (as returned by hostname(1)) has no dot and no names 8303 listed in /etc/hosts or your NIS map have a dot. 8304 Check for proper domain name on HELO and EHLO commands per 8305 RFC 1123 section 5.2.5. Problem noted by Thomas Dwyer III 8306 of Michigan Technological University. 8307 Relax chownsafe rules slightly -- old version said that if you 8308 can't tell if _POSIX_CHOWN_RESTRICTED is set (that is, 8309 if fpathconf returned EINVAL or ENOSYS), assume that 8310 chown is not safe. The new version falls back to whether 8311 you are on a BSD system or not. This is important for 8312 SunOS, which apparently always returns one of those 8313 error codes. This impacts whether you can mail to files 8314 or not. 8315 Syntax errors such as unbalanced parentheses in the configuration 8316 file could be omitted if you had "Oem" prior to the 8317 syntax error in the config file. Change to always print 8318 the error message. It was especially weird because it 8319 would cause a "warning" message to be sent to the Postmaster 8320 for every message sent (but with no transcript). Problem 8321 noted by Gregory Paris of Motorola. 8322 Rewrite collect and putbody to handle full 8-bit data, including 8323 zero bytes. These changes are internally extensive, but 8324 should have minimal impact on external function. 8325 Allow full words for option names -- if the option letter is 8326 (apparently) a space, then take the word following -- e.g., 8327 O MatchGECOS=TRUE 8328 The full list of old and new names is as follows: 8329 7 SevenBitInput 8330 8 EightBitMode 8331 A AliasFile 8332 a AliasWait 8333 B BlankSub 8334 b MinFreeBlocks/MaxMessageSize 8335 C CheckpointInterval 8336 c HoldExpensive 8337 D AutoRebuildAliases 8338 d DeliveryMode 8339 E ErrorHeader 8340 e ErrorMode 8341 f SaveFromLine 8342 F TempFileMode 8343 G MatchGECOS 8344 H HelpFile 8345 h MaxHopCount 8346 i IgnoreDots 8347 I ResolverOptions 8348 J ForwardPath 8349 j SendMimeErrors 8350 k ConnectionCacheSize 8351 K ConnectionCacheTimeout 8352 L LogLevel 8353 l UseErrorsTo 8354 m MeToo 8355 n CheckAliases 8356 O DaemonPortOptions 8357 o OldStyleHeaders 8358 P PostmasterCopy 8359 p PrivacyOptions 8360 Q QueueDirectory 8361 q QueueFactor 8362 R DontPruneRoutes 8363 r, T Timeout 8364 S StatusFile 8365 s SuperSafe 8366 t TimeZoneSpec 8367 u DefaultUser 8368 U UserDatabaseSpec 8369 V FallbackMXHost 8370 v Verbose 8371 w TryNullMXList 8372 x QueueLA 8373 X RefuseLA 8374 Y ForkEachJob 8375 y RecipientFactor 8376 z ClassFactor 8377 Z RetryFactor 8378 The old macros that passed information into sendmail have 8379 been changed to options; those correspondences are: 8380 $e SmtpGreetingMessage 8381 $l UnixFromLine 8382 $o OperatorChars 8383 $q (deleted -- not necessary) 8384 To avoid possible problems with an older sendmail, 8385 configuration level 6 is accepted by this version of 8386 sendmail; any config file using the new names should 8387 specify "V6" in the configuration. 8388 Change address parsing to properly note that a phrase before a 8389 colon and a trailing semicolon are essentially the same 8390 as text outside of angle brackets (i.e., sendmail should 8391 treat them as comments). This is to handle the 8392 ``group name: addr1, addr2, ..., addrN;'' syntax (it will 8393 assume that ``group name:'' is a comment on the first 8394 address and the ``;'' is a comment on the last address). 8395 This requires config file support to get right. It does 8396 understand that :: is NOT this syntax, and can be turned 8397 off completely by setting the ColonOkInAddresses option. 8398 Level 6 config files added with new mailer flags: 8399 A Addresses are aliasable. 8400 i Do udb rewriting on envelope as well as header 8401 sender lines. Applies to the from address mailer 8402 flags rather than the recipient mailer flags. 8403 j Do udb rewriting on header recipient addresses. 8404 Applies to the sender mailer flags rather than the 8405 recipient mailer flags. 8406 k Disable check for loops when doing HELO command. 8407 o Always run as the mail recipient, even on local 8408 delivery. 8409 w Check for an /etc/passwd entry for this user. 8410 5 Pass addresses through ruleset 5. 8411 : Check for :include: on this address. 8412 | Check for |program on this address. 8413 / Check for /file on this address. 8414 @ Look up sender header addresses in the user 8415 database. Applies to the mailer flags for the 8416 mailer corresponding to the envelope sender 8417 address, rather than to recipient mailer flags. 8418 Pre-level 6 configuration files set A, w, 5, :, |, /, and @ 8419 on the "local" mailer, the o flag on the "prog" and "*file*" 8420 mailers, and the ColonOkInAddresses option. 8421 Eight-to-seven bit MIME conversions. This borrows ideas from 8422 John Beck of Hewlett-Packard, who generously contributed 8423 their implementation to me, which I then didn't use (see 8424 mime.c for an explanation of why). This adds the 8425 EightBitMode option (a.k.a. `8') and an F=8 mailer flag 8426 to control handling of 8-bit data. These have to cope with 8427 two types of 8-bit data: unlabelled 8-bit data (that is, 8428 8-bit data that is entered without declaring it as 8-bit 8429 MIME -- technically this is illegal according to the 8430 specs) and labelled 8-bit data (that is, it was declared 8431 as 8BITMIME in the ESMTP session or by using the 8432 -B8BITMIME command line flag). If the F=8 mailer flag is 8433 set then 8-bit data is sent to non-8BITMIME machines 8434 instead of converting to 7 bit (essentially using 8435 just-send-8 semantics). The values for EightBitMode are: 8436 m convert unlabelled 8-bit input to 8BITMIME, and do 8437 any necessary conversion of 8BITMIME to 7BIT 8438 (essentially, the full MIME option). 8439 p pass unlabelled 8-bit input, but convert labelled 8440 8BITMIME input to 7BIT as required (default). 8441 s strict adherence: reject unlabelled 8-bit input, 8442 convert 8BITMIME to 7BIT as required. The F=8 8443 flag is ignored. 8444 Unlabelled 8-bit data is rejected in mode `s' regardless of 8445 the setting of F=8. 8446 Add new internal class 'n', which is the set of MIME Content-Types 8447 which can not be 8 to 7 bit encoded because of other 8448 considerations. Types "multipart/*" and "message/*" are 8449 never directly encoded (although their components can be). 8450 Add new internal class 's', which is the set of subtypes of the 8451 MIME message/* content type that can be treated as though 8452 they are an RFC822 message. It is predefined to have 8453 "rfc822". Suggested By Kari Hurtta. 8454 Add new internal class 'e'. This is the set of MIME 8455 Content-Transfer-Encodings that can be converted to 8456 a seven bit format (Quoted-Printable or Base64). It is 8457 preinitialized to contain "7bit", "8bit", and "binary". 8458 Add C=charset mailer parameter and the the DefaultCharSet option (no 8459 short name) to set the default character set to use in the 8460 Content-Type: header when doing encoding of an 8-bit message 8461 which isn't marked as MIME into MIME format. If the C= 8462 parameter is set on the Envelope From address, use that as 8463 the default encoding; else use the DefaultCharSet option. 8464 If neither is set, it defaults to "unknown-8bit" as 8465 suggested by RFC 1428 section 3. 8466 Allow ``U=user:group'' field in mailer definition to set a default 8467 user and group that a mailer will be executed as. This 8468 overrides the 'u' and 'g' options, and if the `F=S' flag is 8469 also set, it is the uid/gid that will always be used (that 8470 is, the controlling address is ignored). The values may be 8471 numeric or symbolic; if only a symbolic user is given (no 8472 group) that user's default group in the passwd file is used 8473 as the group. Based on code donated by Chip Rosenthal of 8474 Unicom. 8475 Allow `u' option to also accept user:group as a value, in the same 8476 fashion as the U= mailer option. 8477 Add the symbolic time zone name in the Arpanet format dates (as 8478 a comment). This adds a new compile-time configuration 8479 flag: TZ_TYPE can be set to TZ_TM_NAME (use the value 8480 of (struct tm *)->tm_name), TZ_TM_ZONE (use the value 8481 of (struct tm *)->tm_zone), TZ_TZNAME (use extern char 8482 *tzname[(struct tm *)->tm_isdst]), TZ_TIMEZONE (use 8483 timezone()), or TZ_NONE (don't include the comment). Code 8484 from Chip Rosenthal. 8485 The "Timeout" option (formerly "r") is extended to allow suboptions. 8486 For example, 8487 O Timeout.helo = 2m 8488 There are also two new suboptions "queuereturn" and 8489 "queuewarn"; these subsume the old T option. Thus, to 8490 set them both the preferred new syntax is 8491 O Timeout.queuereturn = 5d 8492 O Timeout.queuewarn = 4h 8493 Sort queue by host name instead of by message priority if the 8494 QueueSortOrder option (no short name) is set is set to 8495 ``host''. This makes better use of the connection cache, 8496 but may delay more ``interactive'' messages behind large 8497 backlogs under some circumstances. This is probably a 8498 good option if you have high speed links or don't do lots 8499 of ``batch'' messages, but less good if you are using 8500 something like PPP on a 14.4 modem. Based on code 8501 contributed by Roy Mongiovi of Georgia Tech (my main 8502 contribution was to make it configurable). 8503 Save i-number of df file in qf file to simplify rebuilding of queue 8504 after disastrous disk crash. Suggested by Kyle Jones of 8505 UUNET; closely based on code from KJS DECWRL code written 8506 by Paul Vixie. NOTA BENE: The qf files produced by 8.7 8507 are NOT back compatible with 8.6 -- that is, you can convert 8508 from 8.6 to 8.7, but not the other direction. 8509 Add ``F=d'' mailer flag to disable all use of angle brackets in 8510 route-addrs in envelopes; this is because in some cases 8511 they can be sent to the shell, which interprets them as 8512 I/O redirection. 8513 Don't include error file (option E) with return-receipts; this 8514 can be confusing. 8515 Don't send "Warning: cannot send" messages to owner-* or 8516 *-request addresses. Suggested by Christophe Wolfhugel 8517 of the Institut Pasteur, Paris. 8518 Allow -O command line flag to set long form options. 8519 Add "MinQueueAge" option to set the minimum time between attempts 8520 to run the queue. For example, if the queue interval 8521 (-q value) is five minutes, but the minimum queue age 8522 is fifteen minutes, jobs won't be tried more often than 8523 once every fifteen minutes. This can be used to give 8524 you more responsiveness if your delivery mode is set to 8525 queue-only. 8526 Allow "fileopen" timeout (default: 60 seconds) for opening 8527 :include: and .forward files. 8528 Add "-k", "-v", and "-z" flags to map definitions; these set the 8529 key field name, the value field name, and the field 8530 delimiter. The field delimiter can be a single character 8531 or the sequence "\t" or "\n" for tab or newline. 8532 These are for use by NIS+ and similar access methods. 8533 Change maps to always strip quotes before lookups; the -q flag 8534 turns off this behavior. Suggested by Motonori Nakamura. 8535 Add "nisplus" map class. Takes -k and -v flags to choose the 8536 key and value field names respectively. Code donated by 8537 Sun Microsystems. 8538 Add "hesiod" map class. The "file name" is used as the 8539 "HesiodNameType" parameter to hes_resolve(3). Returns the 8540 first value found for the match. Code donated by Scott 8541 Hutton of Indiana University. 8542 Add "netinfo" (NeXT NetInfo) map class. Maps can have a -k flag to 8543 specify the name of the property that is searched as the 8544 key and a -v flag to specify the name of the property that 8545 is returned as the value (defaults to "members"). The 8546 default map is "/aliases". Some code based on code 8547 contributed by Robert La Ferla of Hot Software. 8548 Add "text" map class. This does slow, linear searches through 8549 text files. The -z flag specifies a column delimiter 8550 (defaults to any sequence of white space), the -k flag 8551 sets the key column number, and the -v flag sets the 8552 value column number. Lines beginning with `#' are treated 8553 as comments. 8554 Add "program" map class to execute arbitrary programs. The search 8555 key is presented as the last argument; the output is one 8556 line read from the programs standard output. Exit statuses 8557 are from sysexits.h. 8558 Add "sequence" map class -- searches maps in sequence until it 8559 finds a match. For example, the declarations: 8560 Kmap1 ... 8561 Kmap2 ... 8562 Kmapseq sequence map1 map2 8563 defines a map "mapseq" that first searches map1; if the 8564 value is found it is returned immediately, otherwise 8565 map2 is searched and the value returned. 8566 Add "switch" map class. This is much like "sequence" except that 8567 the ordering is fetched from an external file, usually 8568 the system service switch. The parameter is the name of 8569 the service to switch on, and the maps that it will use 8570 are the name of the switch map followed by ".service_type". 8571 For example, if the declaration of the map is 8572 Ksample switch hosts 8573 and the system service switch specifies that hosts are 8574 looked up using dns and nis in that order, then this is 8575 equivalent to 8576 Ksample sequence sample.dns sample.nis 8577 The subordinate maps (sample.*) must already be defined. 8578 Add "user" map class -- looks up users using getpwnam. Takes a 8579 "-v field" flag on the definition that tells what passwd 8580 entry to return -- legal values are name, passwd, uid, gid, 8581 gecos, dir, and shell. Generally expected to be used with 8582 the -m (matchonly) flag. 8583 Add "bestmx" map class -- returns the best MX value for the host 8584 listed as the value. If there are several "best" MX records 8585 for this host, one will be chosen at random. 8586 Add "userdb" map class -- looks up entries in the user database. 8587 The "file name" is actually the tag that will be used, 8588 typically "mailname". If there are multiple entries 8589 matching the name, the one chosen is undefined. 8590 Add multiple queue timeouts (both return and warning). These are 8591 set by the Precedence: or Priority: header fields to one of 8592 three values. If a Priority: is set and has value "normal", 8593 "urgent", or "non-urgent" the corresponding timeouts are 8594 used. If no priority is set, the Precedence: is consulted; 8595 if negative, non-urgent timeouts are used; if greater than 8596 zero, urgent timeouts are used. Otherwise, normal timeouts 8597 are used. The timeouts are set by setting the six timeouts 8598 queue{warn,return}.{urgent,normal,non-urgent}. 8599 Fix problem when a mail address is resolved to a $#error mailer 8600 with a temporary failure indication; it works in SMTP, 8601 but when delivering locally the mail is silently discarded. 8602 This patch, from Kyle Jones of UUNET, bounces it instead 8603 of queueing it (queueing is very hard). 8604 When using /etc/hosts or NIS-style lookups, don't assume that 8605 the first name in the list is the best one -- instead, 8606 search for the first one with a dot. For example, if 8607 an /etc/hosts entry reads 8608 128.32.149.68 mammoth mammoth.CS.Berkeley.EDU 8609 this change will use the second name as the canonical 8610 machine name instead of the initial, unqualified name. 8611 Change dequote map to replace spaces in quoted text with a value 8612 indicated by the -s flag on the dequote map definition. 8613 For example, ``Mdequote dequote -s_'' will change 8614 "Foo Bar" into an unquoted Foo_Bar instead of leaving it 8615 quoted (because of the space character). Suggested by Dan 8616 Oscarsson for use in X.400 addresses. 8617 Implement long macro names as ${name}; long class names can 8618 be similarly referenced as $={name} and $~{name}. 8619 Definitions are (e.g.) ``D{name}value''. Names that have 8620 a leading lower case letter or punctuation characters are 8621 reserved for internal use by sendmail; i.e., config files 8622 should use names that begin with a capital letter. Based 8623 on code contributed by Dan Oscarsson. 8624 Fix core dump if getgrgid returns a null group list (as opposed 8625 to an empty group list, that is, a pointer to a list 8626 with no members). Fix from Andrew Chang of Sun Microsystems. 8627 Fix possible core dump if malloc fails -- if the malloc in xalloc 8628 failed, it called syserr which called newstr which called 8629 xalloc.... The newstr is now avoided for "panic" messages. 8630 Reported by Stuart Kemp of James Cook University. 8631 Improve connection cache timeouts; previously, they were not even 8632 checked if you were delivering to anything other than an 8633 IPC-connected host, so a series of (say) local mail 8634 deliveries could cause cached connections to be open 8635 much longer than the specified timeout. 8636 If an incoming message exceeds the maximum message size, stop 8637 writing the incoming bytes to the queue data file, since 8638 this can fill your mqueue partition -- this is a possible 8639 denial-of-service attack. 8640 Don't reject all numeric local user names unless HESIOD is 8641 defined. It turns out that Posix allows all-numeric 8642 user names. Fix from Tony Sanders of BSDI. 8643 Add service switch support. If the local OS has a service 8644 switch (e.g., /etc/nsswitch.conf on Solaris or /etc/svc.conf 8645 on DEC systems) that will be used; otherwise, it falls back 8646 to using a local mechanism based on the ServiceSwitchFile 8647 option (default: /etc/service.switch). For example, if the 8648 service switch lists "files" and "nis" for the aliases 8649 service, that will be the default lookup order. the "files" 8650 ("local" on DEC) service type expands to any alias files 8651 you listed in the configuration file, even if they aren't 8652 actually file lookups. 8653 Option I (NameServerOptions) no longer sets the "UseNameServer" 8654 variable which tells whether or not DNS should be considered 8655 canonical. This is now determined based on whether or not 8656 "dns" is in the service list for "hosts". 8657 Add preliminary support for the ESMTP "DSN" extension (Delivery 8658 Status Notifications). DSN notifications override 8659 Return-Receipt-To: headers, which are bogus anyhow -- 8660 support for them has been removed. 8661 Add T=mts-name-type/address-type/diagnostic-type keyletter to mailer 8662 definitions to define the types used in DSN returns for 8663 MTA names, addresses, and diagnostics respectively. 8664 Extend heuristic to force running in ESMTP mode to look for the 8665 five-character string "ESMTP" anywhere in the 220 greeting 8666 message (not just the second line). This is to provide 8667 better compatibility with other ESMTP servers. 8668 Print sequence number of job when running the queue so you can 8669 easily see how much progress you have made. Suggested 8670 by Peter Wemm of DIALix. 8671 Map newlines to spaces in logged message-ids; some versions of 8672 syslog truncate the rest of the line after newlines. 8673 Suggested by Fletcher Mattox of U. Texas. 8674 Move up forking for job runs so that if a message is split into 8675 multiple envelopes you don't get "fork storms" -- this 8676 also improves the connection cache utilization. 8677 Accept "<<>>", "<<<>>>", and so forth as equivalent to "<>" for 8678 the purposes of refusing to send error returns. Suggested 8679 by Motonori Nakamura of Ritsumeikan University. 8680 Relax rules on when a file can be written when referenced from 8681 the aliases file: use the default uid/gid instead of the 8682 real uid/gid. This allows you to create a file owned by 8683 and writable only by the default uid/gid that will work 8684 all the time (without having the set-user-ID bit set). Change 8685 suggested by Shau-Ping Lo and Andrew Cheng of Sun 8686 Microsystems. 8687 Add "DialDelay" option (no short name) to provide an "extra" 8688 delay for dial on demand systems. If this is non-zero 8689 and a connect fails, sendmail will wait this long and 8690 then try again. If it takes longer than the kernel 8691 timeout interval to establish the connection, this 8692 option can give the network software time to establish 8693 the link. The default units are seconds. 8694 Move logging of sender information to be as early as possible; 8695 previously, it could be delayed a while for SMTP mail 8696 sent to aliases. Suggested by Brad Knowles of the 8697 Defense Information Systems Agency. 8698 Call res_init() before setting RES_DEBUG; this is required by 8699 BIND 4.9.3, or so I'm told. From Douglas Anderson of 8700 the National Computer Security Center. 8701 Add xdelay= field in logs -- this is a transaction delay, telling 8702 you how long it took to deliver to this address on the 8703 last try. It is intended to be used for sorting mailing 8704 lists to favor "quick" addresses. Provided for use by 8705 the mailprio scripts (see below). 8706 If a map cannot be opened, and that map is non-optional, and 8707 an address requires that map for resolution, queue the 8708 map instead of bouncing it. This involves creating a 8709 pseudo-class of maps called "bogus-map" -- if a required 8710 map cannot be opened, the class is changed to bogus-map; 8711 all queries against bogus-map return "tempfail". The 8712 bogus-map class is not directly accessible. A sample 8713 implementation was donated by Jem Taylor of Glasgow 8714 University Computing Service. 8715 Fix a possible core dump when mailing to a program that talks 8716 SMTP on its standard input. Fix from Keith Moore of 8717 the University of Kentucky. 8718 Make it possible to resolve filenames to $#local $: @ /filename; 8719 previously, the "@" would cause it to not be recognized 8720 as a file. Problem noted by Brian Hill of U.C. Davis. 8721 Accept a -1 signal to re-exec the daemon. This only works if 8722 argv[0] is a full path to sendmail. 8723 Fix bug in "addr=..." field in O option on little-endian machines 8724 -- the network number wasn't being converted to network 8725 byte order. Patch from Kurt Lidl of Pix Technologies 8726 Corporation. 8727 Pre-initialize the resolver early on; this is to avoid a bug with 8728 BIND 4.9.3 that can cause the _res.retry field to get 8729 reset to zero, causing all name server lookups to time 8730 out. Fix from Matt Day of Artisoft. 8731 Restore T line (trusted users) in config file -- but instead of 8732 locking out the -f flag, they just tell whether or not 8733 an X-Authentication-Warning: will be added. This really 8734 just creates new entries in class 't', so "Ft/file/name" 8735 can be used to read trusted user names from a file. 8736 Trusted users are also allowed to execute programs even 8737 if they have a shell that isn't in /etc/shells. 8738 Improve NEWDB alias file rebuilding so it will create them 8739 properly if they do not already exist. This had been 8740 a MAYBENEXTRELEASE feature in 8.6.9. 8741 Check for @:@ entry in NIS maps before starting up to avoid 8742 (but not prevent, sigh) race conditions. This ought to 8743 be handled properly in ypserv, but isn't. Suggested by 8744 Michael Beirne of Motorola. 8745 Refuse connections if there isn't enough space on the filesystem 8746 holding the queue. Contributed by Robert Dana of Wolf 8747 Communications. 8748 Skip checking for directory permissions in the path to a file 8749 when checking for file permissions iff setreuid() 8750 succeeded -- it is unnecessary in that case. This avoids 8751 significant performance problems when looking for .forward 8752 files. Based on a suggestion by Win Bent of USC. 8753 Allow symbolic ruleset names. Syntax can be "Sname" to get an 8754 arbitrary ruleset number assigned or "Sname = integer" 8755 to assign a specific ruleset number. Reference is 8756 $>name_or_number. Names can be composed of alphas, digits, 8757 underscore, or hyphen (first character must be non-numeric). 8758 Allow -o flag on AliasFile lines to make the alias file optional. 8759 From Bryan Costales of ICSI. 8760 Add NoRecipientAction option to handle the case where there is 8761 no legal recipient header in the message. It can take 8762 on values: 8763 None Leave the message as is. The 8764 message will be passed on even 8765 though it is in technically 8766 illegal syntax. 8767 Add-To Add a To: header with any 8768 recipients that it can find from 8769 the envelope. This risks exposing 8770 Bcc: recipients. 8771 Add-Apparently-To Add an Apparently-To: header. This 8772 has almost no redeeming social value, 8773 and is provided only for back 8774 compatibility. 8775 Add-To-Undisclosed Add a header reading 8776 To: undisclosed-recipients:; 8777 which will have the effect of 8778 making the message legal without 8779 exposing Bcc: recipients. 8780 Add-Bcc To add an empty Bcc: header. 8781 There is a chance that mailers down 8782 the line will delete this header, 8783 which could cause exposure of Bcc: 8784 recipients. 8785 The default is NoRecipientAction=None. 8786 Truncate (rather than delete) Bcc: lines in the header. This 8787 should prevent later sendmails (at least, those that don't 8788 themselves delete Bcc:) from considering this message to 8789 be non-conforming -- although it does imply that non-blind 8790 recipients can see that a Bcc: was sent, albeit not to whom. 8791 Add SafeFileEnvironment option. If declared, files named as delivery 8792 targets must be regular files in addition to the regular 8793 checks. Also, if the option is non-null then it is used as 8794 the name of a directory that is used as a chroot(2) 8795 environment for the delivery; the file names listed in an 8796 alias or forward should include the name of this root. 8797 For example, if you run with 8798 O SafeFileEnvironment=/arch 8799 then aliases should reference "/arch/rest/of/path". If a 8800 value is given, sendmail also won't try to save to 8801 /usr/tmp/dead.letter (instead it just leaves the job in the 8802 queue as Qfxxxxxx). Inspired by *Hobbit*'s sendmail patch kit. 8803 Support -A flag for alias files; this will comma concatenate like 8804 entries. For example, given the aliases: 8805 list: member1 8806 list: member2 8807 and an alias file declared as: 8808 OAhash:-A /etc/aliases 8809 the final alias inserted will be "list: member1,member2"; 8810 without -A you will get an error on the second and subsequent 8811 alias for "list". Contributed by Bryan Costales of ICSI. 8812 Line-buffer transcript file. Suggested by Liudvikas Bukys. 8813 Fix a problem that could cause very long addresses to core dump in 8814 some special circumstances. Problem pointed out by Allan 8815 Johannesen. 8816 (Internal change.) Change interface to expand() (macro expansion) 8817 to be simpler and more consistent. 8818 Delete check for funny qf file names. This didn't really give 8819 any extra security and caused some people some problems. 8820 (If you -really- want this, define PICKY_QF_NAME_CHECK 8821 at compile time.) Suggested by Kyle Jones of UUNET. 8822 (Internal change.) Change EF_NORETURN to EF_NO_BODY_RETN and 8823 merge with DSN code; this is simpler and more consistent. 8824 This may affect some people who have written their own 8825 checkcompat() routine. 8826 (Internal change.) Eliminate `D' line in qf file. The df file 8827 is now assumed to be the same name as the qf file (with 8828 the `q' changed to a `d', of course). 8829 Avoid forking for delivery if all recipient mailers are marked as 8830 "expensive" -- this can be a major cost on some systems. 8831 Essentially, this forces sendmail into "queue only" mode 8832 if all it is going to do is queue anyway. 8833 Avoid sending a null message in some rather unusual circumstances 8834 (specifically, the RCPT command returns a temporary 8835 failure but the connection is lost before the DATA 8836 command). Fix from Scott Hammond of Secure Computing 8837 Corporation. 8838 Change makesendmail to use a somewhat more rational naming scheme: 8839 Makefiles and obj directories are named $os.$rel.$arch, 8840 where $os is the operating system (e.g., SunOS), $rel is 8841 the release number (e.g., 5.3), and $arch is the machine 8842 architecture (e.g., sun4). Any of these can be omitted, 8843 and anything after the first dot in a release number can 8844 be replaced with "x" (e.g., SunOS.4.x.sun4). The previous 8845 version used $os.$arch.$rel and was rather less general. 8846 Change makesendmail to do a "make depend" in the target directory 8847 when it is being created. This involves adding an empty 8848 "depend:" entry in most Makefiles. 8849 Ignore IDENT return value if the OSTYPE field returns "OTHER", 8850 as indicated by RFC 1413. Pointed out by Kari Hurtta 8851 of the Finnish Meteorological Institute. 8852 Fix problem that could cause multiple responses to DATA command 8853 on header syntax errors (e.g., lines beginning with colons). 8854 Problem noted by Jens Thomassen of the University of Oslo. 8855 Don't let null bytes in headers cause truncation of the rest of 8856 the header. 8857 Log Authentication-Warning:s. Suggested by Motonori Nakamura. 8858 Increase timeouts on message data puts to allow time for receivers 8859 to canonify addresses in headers on the fly. This is still 8860 a rather ugly heuristic. From Motonori Nakamura. 8861 Add "HasWildcardMX" suboption to ResolverOptions; if set, MX 8862 records are not used when canonifying names, and when MX 8863 lookups are done for addressing they must be fully 8864 qualified. This is useful if you have a wildcard MX record, 8865 although it may cause other problems. In general, don't use 8866 wildcard MX records. Patch from Motonori Nakamura. 8867 Eliminate default two-line SMTP greeting message. Instead of 8868 adding an extra "ESMTP spoken here" line, the word "ESMTP" 8869 is added between the first and second word of the first 8870 line of the greeting message (i.e., immediately after the 8871 host name). This eliminates the need for the BROKEN_SMTP_PEERS 8872 compile flag. Old sendmails won't see the ESMTP, but that's 8873 acceptable because SIZE was the only useful extension that 8874 old sendmails understand. 8875 Avoid gethostbyname calls on UNIX domain sockets during SIGUSR1 8876 invoked state dumps. From Masaharu Onishi. 8877 Allow on-line comments in .forward and :include: files; they are 8878 introduced by the string "<LWSP>#@#<LWSP>", where <LWSP> 8879 is a space or a tab. This is intended for native 8880 representation of non-ASCII sets such as Japanese, where 8881 existing encodings would be unreadable or would lose 8882 data -- for example, 8883 <motonori@cs.ritsumei.ac.jp> NAKAMURA Motonori 8884 (romanized/less information) 8885 <motonori@cs.ritsumei.ac.jp> =?ISO-2022-JP?B?GyRCQ2ZCPBsoQg==?= 8886 =?ISO-2022-JP?B?GyRCQUdFNRsoQg==?= 8887 (with MIME encoding, not human readable) 8888 <motonori@cs.ritsumei.ac.jp> #@# ^[$BCfB<^[(B ^[$BAGE5^[(B 8889 (native encoding with ISO-2022-JP) 8890 The last form is human readable in the Japanese environment. 8891 Based on a fix from (surprise!) Motonori Nakamura. 8892 Don't make SMTP error returns on MAIL FROM: line be "sticky" for all 8893 messages to that host; these are most frequently associated 8894 with addresses rather than the host, with the exception of 8895 421 (service shutting down). The effect was to cause queues 8896 to sometimes take an excessive time to flush. Reported by 8897 Robert Sargent of Southern Geographics Technologies and 8898 Eric Prestemon of American University. 8899 Add Nice=N mailer option to set the niceness at which a mailer will 8900 run. This is actually a relative niceness (that is, an 8901 increment on the background value). 8902 Log queue runs that are skipped due to high loads. They are logged 8903 at LOG_INFO priority iff the log level is > 8. Contributed 8904 by Bruce Nagel of Data General. 8905 Allow the error mailer to accept a DSN-style error status code 8906 instead of an sysexits status code in the host part. 8907 Anything with a dot will be interpreted as a DSN-style code. 8908 Add new mailer flag: F=3 will tell translations to Quoted-Printable 8909 to encode characters that might be munged by an EBCDIC system 8910 in addition to the set required by RFC 1521. The additional 8911 characters are !, ", #, $, @, [, \, ], ^, `, {, |, }, and ~. 8912 (Think of "IBM 360" as the mnemonic for this flag.) 8913 Change check for mailing to files to look for a pathname of [FILE] 8914 rather than looking for the mailer named *file*. The mapping 8915 of leading slashes still goes to the *file* mailer. This 8916 allows you to implement the *file* mailer as a separate 8917 program, for example, to insert a Content-Length: header 8918 or do special security policy. However, note that the usual 8919 initial checking for the file permissions is still done, and 8920 the program in question needs to be very careful about how 8921 it does the file write to avoid security problems. 8922 Be able to read ~root/.forward even if the path isn't accessible to 8923 regular users. This is disrecommended because sendmail 8924 sometimes does not run as root (e.g., when an unsafe option 8925 is specified on the command line), but should otherwise be 8926 safe because .forward files must be owned by the user for 8927 whom mail is being forwarded, and cannot be a symbolic link. 8928 Suggested by Forrest Aldrich of Wang Laboratories. 8929 Add new "HostsFile" option that is the pathname to the /etc/hosts 8930 file. This is used for canonifying hostnames when the 8931 service type is "files". 8932 Implement programs on F (read class from file) line. The syntax is 8933 Fc|/path/to/program to read the output from the program 8934 into class "c". 8935 Probe the network interfaces to find alternate names for this 8936 host. Requires the SIOCGIFCONF ioctl call. Code 8937 contributed by SunSoft. 8938 Add "E" configuration line to set or propagate environment 8939 variables into children. "E<envar>" will propagate 8940 the named variable from the environment when sendmail 8941 was invoked into any children it calls; "E<envar>=<value>" 8942 sets the named variable to the indicated value. Any 8943 variables not explicitly named will not be in the child 8944 environment. However, sendmail still forces an 8945 "AGENT=sendmail" environment variable, in part to enforce 8946 at least one environment variable, since many programs and 8947 libraries die horribly if this is not guaranteed. 8948 Change heuristic for rebuilding both NEWDB and NDBM versions of 8949 alias databases -- new algorithm looks for the substring 8950 "/yp/" in the file name. This is more portable and involves 8951 less overhead. Suggested by Motonori Nakamura. 8952 Dynamically allocate the queue work list so that you don't lose 8953 jobs in large queue runs. The old QUEUESIZE compile parameter 8954 is replaced by QUEUESEGSIZE (the unit of allocation, which 8955 should not need to be changed) and the MaxQueueRunSize option, 8956 which is the absolute maximum number of jobs that will ever 8957 be handled in a single queue run. Based on code contributed 8958 by Brian Coan of the Institute for Global Communications. 8959 Log message when a message is dropped because it exceeds the maximum 8960 message size. Suggested by Leo Bicknell of Virginia Tech. 8961 Allow trusted users (those on a T line or in $=t) to use -bs without 8962 an X-Authentication-Warning: added. Suggested by Mark Thomas 8963 of Mark G. Thomas Consulting. 8964 Announce state of compile flags on -d0.1 (-d0.10 throws in the 8965 OS-dependent defines). The old semantic of -d0.1 to not 8966 run the daemon in background has been moved to -d99.100, 8967 and the old 52.5 flag (to avoid disconnect() from closing 8968 all output files) has been moved to 52.100. This makes 8969 things more consistent (flags below .100 don't change 8970 semantics) and separates out the backgrounding so that 8971 it doesn't happen automatically on other unrelated debugging 8972 flags. 8973 If -t is used but no addresses are found in the header, give an 8974 error message rather than just doing nothing. Fix from 8975 Motonori Nakamura. 8976 On systems (like SunOS) where the effective gid is not necessarily 8977 included in the group list returned by getgroups(), the 8978 `restrictmailq' option could sometimes cause an authorized 8979 user to not be able to use `mailq'. Fix from Charles Hannum 8980 of MIT. 8981 Allow symbolic service names for [IPC] mailers. Suggested by 8982 Gerry Magennis of Logica International. 8983 Add DontExpandCnames option to prevent $[ ... $] from expanding CNAMEs 8984 when running DNS. For example, if the name FTP.Foo.ORG is 8985 a CNAME for Cruft.Foo.ORG, then when sitting on a machine in 8986 the Foo.ORG domain a lookup of "FTP" returns "Cruft.Foo.ORG" 8987 if this option is not set, or "FTP.Foo.ORG" if it is set. 8988 This is technically illegal under RFC 822 and 1123, but the 8989 IETF is moving toward legalizing it. Note that turning on 8990 this option is not sufficient to guarantee that a downstream 8991 neighbor won't rewrite the address for you. 8992 Add "-m" flag to makesendmail script -- this tells you what object 8993 directory and Makefile it will use, but doesn't actually do 8994 the make. 8995 Do some additional checking on the contents of the qf file to try 8996 to detect attacks against the qf file. In particular, 8997 abort on any line beginning "From ", and add an "end of 8998 file" line -- any data after that line is prohibited. 8999 Always use /etc/sendmail.cf, regardless of the arbitrary vendor 9000 choices. This can be overridden in the Makefile by using 9001 either -DUSE_VENDOR_CF_PATH to get the vendor location 9002 (to the extent that we know it) or by defining 9003 _PATH_SENDMAILCF (which is a "hard override"). This allows 9004 sendmail 8 to have more consistent installation instructions. 9005 Allow macros on `K' line in config file. Suggested by Andrew Chang 9006 of Sun Microsystems. 9007 Improved symbol table hash function from Eric Wassenaar. This one 9008 is at least 50% faster. 9009 Fix problem that didn't notice that timeout on file open was a 9010 transient error. Fix from Larry Parmelee of Cornell 9011 University. 9012 Allow comments (lines beginning with a `#') in files read for 9013 classes. Suggested by Motonori Nakamura. 9014 Make SIGINT (usually ^C) in test mode return to the prompt instead 9015 of dropping out entirely. This makes testing some of the 9016 name server lookups easier to deal with when there are 9017 hung servers. From Motonori Nakamura. 9018 Add new ${opMode} macro that is set to the current operation mode 9019 (e.g., `s' for -bs, `t' for -bt, etc.). Suggested by 9020 Claude Marinier <MARINIER@emp.ewd.dreo.dnd.ca>. 9021 Add new delivery mode (Odd) that defers all map lookups to queue runs. 9022 Kind of like queue-only mode (Odq) except it tries to avoid 9023 any external service requests; for dial-on-demand hosts that 9024 want to minimize DNS lookups when mail is being queued. For 9025 this to work you will also have to make sure that gethostbyname 9026 of your local host name does not do a DNS lookup. 9027 Improved handling of "out of space" conditions from John Myers of 9028 Carnegie Mellon. 9029 Improved security for mailing to files on systems that have fchmod(2) 9030 support. 9031 Improve "cannot send message for N days" message -- now says "could 9032 not send for past N days". Suggested by Tom Moore of AT&T 9033 Global Information Solutions. 9034 Less misleading Subject: line on messages sent to postmaster only. 9035 From Motonori Nakamura. 9036 Avoid duplicate error messages on bad command line flags. From 9037 Motonori Nakamura. 9038 Better error message for case where ruleset 0 falls off the end 9039 or otherwise does not resolve to a canonical triple. 9040 Fix a problem that could cause multiple bounce messages if a bad 9041 address was sent along with a good address to an SMTP 9042 site where that SMTP site returned a 4yz code in response 9043 to the final dot of the data. Problem reported by David 9044 James of British Telecom. 9045 Add "volatile" declarations so that gcc -O2 will work. Patches 9046 from Alexander Dupuy of System Management ARTS. 9047 Delete duplicates in MX lists -- believe it or not, there are sites 9048 that list the same host twice in an MX list. This deletion 9049 only works on adjacent preferences, so an MX list that 9050 had A=5, B=10, A=15 would leave both As, but one that had 9051 A=5, A=10, B=15 would reduce to A, B. This is intentional, 9052 just in case there is something weird I haven't thought of. 9053 Suggested by Barry Shein of Software Tool & Die. 9054 SECURITY: .forward files cannot be symbolic links. If they are, 9055 a bad guy can read your private files. 9056 PORTABILITY FIXES: 9057 Solaris 2 from Rob McMahon <cudcv@csv.warwick.ac.uk>. 9058 System V Release 4 from Motonori Nakamura of Ritsumeikan 9059 University. This expands the disk size 9060 checking to include all (?) SVR4 configurations. 9061 System V Release 4 from Kimmo Suominen -- initgroups(3) 9062 and setrlimit(2) are both available. 9063 System V Release 4 from sob@sculley.ffg.com -- some versions 9064 apparently "have EX_OK defined in other headerfiles." 9065 Linux Makefile typo. 9066 Linux getusershell(3) is broken in Slackware 2.0 -- 9067 from Andrew Pam of Xanadu Australia. 9068 More Linux tweaking from John Kennedy of California State 9069 University, Chico. 9070 Cray changes from Eric Wassenaar: ``On Cray, shorts, 9071 ints, and longs are all 64 bits, and all structs 9072 are multiples of 64 bits. This means that the 9073 sizeof operator returns only multiples of 8. 9074 This requires adaptation of code that really 9075 deals with 32 bit or 16 bit fields, such as IP 9076 addresses or nameserver fields.'' 9077 DG/UX 5.4.3 from Mark T. Robinson <mtr@ornl.gov>. To 9078 get the old behavior, use -DDGUX_5_4_2. 9079 DG/UX hack: add _FORCE_MAIL_LOCAL_=yes environment 9080 variable to fix bogus /bin/mail behavior. 9081 Tandem NonStop-UX from Rick McCarty <mccarty@mpd.tandem.com>. 9082 This also cleans up some System V Release 4 compile 9083 problems. 9084 Solaris 2: sendmail.cw file should be in /etc/mail to 9085 match all the other configuration files. Fix 9086 from Glenn Barry of Emory University. 9087 Solaris 2.3: compile problem in conf.c. Fix from Alain 9088 Nissen of the University of Liege, Belgium. 9089 Ultrix: freespace calculation was incorrect. Fix from 9090 Takashi Kizu of Osaka University. 9091 SVR4: running in background gets a SIGTTOU because the 9092 emulation code doesn't realize that "getpeername" 9093 doesn't require reading the file. Fix from Peter 9094 Wemm of DIALix. 9095 Solaris 2.3: due to an apparent bug in the socket emulation 9096 library, sockets can get into a "wedged" state where 9097 they just return EPROTO; closing and re-opening the 9098 socket clears the problem. Fix from Bob Manson 9099 of Ohio State University. 9100 Hitachi 3050R & 3050RX running HI-UX/WE2: portability 9101 fixes from Akihiro Hashimoto ("Hash") of Chiba 9102 University. 9103 AIX changes to allow setproctitle to work from Rainer Sch�pf 9104 of Zentrum f�r Datenverarbeitung der Universit�t 9105 Mainz. 9106 AIX changes for load average from Ed Ravin of NASA/Goddard. 9107 SCO Unix from Chip Rosenthal of Unicom (code was using the 9108 wrong statfs call). 9109 ANSI C fixes from Adam Glass (NetBSD project). 9110 Stardent Titan/ANSI C fixes from Kate Hedstrom of Rutgers 9111 University. 9112 DG-UX fixes from Bruce Nagel of Data General. 9113 IRIX64 updates from Mark Levinson of the University of 9114 Rochester Medical Center. 9115 Altos System V (``the first UNIX/XENIX merge the Altos 9116 did for their Series 1000 & Series 2000 line; 9117 their merged code was licensed back to AT&T and 9118 Microsoft and became System V release 3.2'') from 9119 Tim Rice <timr@crl.com>. 9120 OSF/1 running on Intel Paragon from Jeff A. Earickson 9121 <jeff@ssd.intel.com> of Intel Scalable Systems 9122 Division. 9123 Amdahl UTS System V 2.1.5 (SVr3-based) from Janet Jackson 9124 <janet@dialix.oz.au>. 9125 System V Release 4 (statvfs semantic fix) from Alain 9126 Durand of I.M.A.G. 9127 HP-UX 10.x multiprocessor load average changes from 9128 Scott Hutton and Jeff Sumler of Indiana University. 9129 Cray CSOS from Scott Bolte of Cray Computer Corporation. 9130 Unicos 8.0 from Douglas K. Rand of the University of North 9131 Dakota, Scientific Computing Center. 9132 Solaris 2.4 fixes from Sanjay Dani of Dani Communications. 9133 ConvexOS 11.0 from Christophe Wolfhugel. 9134 IRIX 4.0.5 from David Ashton-Reader of CADcentre. 9135 ISC UNIX from J. J. Bailey. 9136 HP-UX 9.xx on the 8xx series machines from Remy Giraud 9137 of Meteo France. 9138 HP-UX configuration from Tom Lane <tgl@sss.pgh.pa.us>. 9139 IRIX 5.2 and 5.3 from Kari E. Hurtta. 9140 FreeBSD 2.0 from Mike Hickey of Federal Data Corporation. 9141 Sony NEWS-OS 4.2.1R and 6.0.3 from Motonori Nakamura. 9142 Omron LUNA unios-b, mach from Motonori Nakamura. 9143 NEC EWS-UX/V 4.2 from Motonori Nakamura. 9144 NeXT 2.1 from Bryan Costales. 9145 AUX patch thanks to Mike Erwin of Apple Computer. 9146 HP-UX 10.0 from John Beck of Hewlett-Packard. 9147 Ultrix: allow -DBROKEN_RES_SEARCH=0 if you are using a 9148 non-DEC resolver. Suggested by Allan Johannesen. 9149 UnixWare 2.0 fixes from Petr Lampa of the Technical 9150 University of Brno (Czech Republic). 9151 KSR OS 1.2.2 support from Todd Miller of the University 9152 of Colorado. 9153 UX4800 support from Kazuhisa Shimizu of NEC. 9154 MAKEMAP: allow -d flag to allow insertion of duplicate aliases 9155 in type ``btree'' maps. The semantics of this are undefined 9156 for regular maps, but it can be useful for the user database. 9157 MAKEMAP: lock database file while rebuilding to avoid sendmail 9158 lookups while the rebuild is going on. There is a race 9159 condition between the open(... O_TRUNC ...) and the lock 9160 on the file, but it should be quite small. 9161 SMRSH: sendmail restricted shell added to the release. This can 9162 be used as an alternative to /bin/sh for the "prog" mailer, 9163 giving the local administrator more control over what 9164 programs can be run from sendmail. 9165 MAIL.LOCAL: add this local mailer to the tape. It is not really 9166 part of the release proper, and isn't fully supported; in 9167 particular, it does not run on System V based systems and 9168 never will. 9169 CONTRIB: a patch to rmail.c from Bill Gianopoulos of Raytheon 9170 to allow rmail to compile on systems that don't have 9171 function prototypes and systems that don't have snprintf. 9172 CONTRIB: add the "mailprio" scripts that will help you sort mailing 9173 lists by transaction delay times so that addresses that 9174 respond quickly get sent first. This is to prevent very 9175 sluggish servers from delaying other peoples' mail. 9176 Contributed by Tony Sanders of BSDI. 9177 CONTRIB: add the "bsdi.mc" file as contributed by Tony Sanders 9178 of BSDI. This has a lot of comments to help people out. 9179 CONFIG: Don't have .mc files include(../m4/cf.m4) -- instead, 9180 put this on the m4 command line. On GNU m4 (which 9181 supports the __file__ primitive) you can run m4 in an 9182 arbitrary directory -- use either: 9183 m4 ${CFDIR}/m4/cf.m4 config.mc > config.cf 9184 or 9185 m4 -I${CFDIR} m4/cf.m4 config.mc > config.cf 9186 On other versions of m4 that don't support __file__, you 9187 can use: 9188 m4 -D_CF_DIR_=${CFDIR}/ ${CFDIR}/m4/cf.m4 ... 9189 (Note the trailing slash on the _CF_DIR_ definition.) 9190 Old versions of m4 will default to _CF_DIR_=.. for back 9191 compatibility. 9192 CONFIG: fix mail from <> so it will properly convert to 9193 MAILER-DAEMON on local addresses. 9194 CONFIG: fix code that was supposed to catch colons in host 9195 names. Problem noted by John Gardiner Myers of CMU. 9196 CONFIG: allow use of SMTP_MAILER_MAX in nullclient configuration. 9197 From Paul Riddle of the University of Maryland, Baltimore 9198 County. 9199 CONFIG: Catch and reject "." as a host address. 9200 CONFIG: Generalize domaintable to look up all domains, not 9201 just unqualified ones. 9202 CONFIG: Delete OLD_SENDMAIL support -- as near as I can tell, it 9203 was never used and didn't work anyway. 9204 CONFIG: Set flags A, w, 5, :, /, |, and @ on the "local" mailer 9205 and d on all mailers in the UUCP class. 9206 CONFIG: Allow "user+detail" to be aliased specially: it will first 9207 look for an alias for "user+detail", then for "user+*", and 9208 finally for "user". This is intended for forwarding mail 9209 for system aliases such as root and postmaster to a 9210 centralized hub. 9211 CONFIG: add confEIGHT_BIT_HANDLING to set option 8 (see above). 9212 CONFIG: add smtp8 mailer; this has the F=8 (just-send-8) flag set. 9213 The F=8 flag is also set on the "relay" mailer, since 9214 this is expected to be another sendmail. 9215 CONFIG: avoid qualifying all UUCP addresses sent via SMTP with 9216 the name of the UUCP_RELAY -- in some cases, this is the 9217 wrong value (e.g., when we have local UUCP connections), 9218 and this can create unreplyable addresses. From Chip 9219 Rosenthal of Unicom. 9220 CONFIG: add confRECEIVED_HEADER to change the format of the 9221 Received: header inserted into all messages. Suggested by 9222 Gary Mills of the University of Manitoba. 9223 CONFIG: Make "notsticky" the default; use FEATURE(stickyhost) 9224 to get the old behavior. I did this upon observing 9225 that almost everyone needed this feature, and that the 9226 concept I was trying to make happen didn't work with 9227 some user agents anyway. FEATURE(notsticky) still works, 9228 but it is a no-op. 9229 CONFIG: Add LUSER_RELAY -- the host to which unrecognized user 9230 names are sent, rather than immediately diagnosing them 9231 as User Unknown. 9232 CONFIG: Add SMTP_MAILER_ARGS, ESMTP_MAILER_ARGS, SMTP8_MAILER_ARGS, 9233 and RELAY_MAILER_ARGS to set the arguments for the 9234 indicated mailers. All default to "IPC $h". Patch from 9235 Larry Parmelee of Cornell University. 9236 CONFIG: pop mailer needs F=n flag to avoid "annoying side effects 9237 on the client side" and F=P to get an appropriate 9238 return-path. From Kimmo Suominen. 9239 CONFIG: add FEATURE(local_procmail) to use the procmail program 9240 as the local mailer. For addresses of the form "user+detail" 9241 the "detail" part is passed to procmail via the -a flag. 9242 Contributed by Kimmo Suominen. 9243 CONFIG: add MAILER(procmail) to add an interface to procmail for 9244 use from mailertables. This lets you execute arbitrary 9245 procmail scripts. Contributed by Kimmo Suominen. 9246 CONFIG: add T= fields (MTS type) to local, smtp, and uucp mailers. 9247 CONFIG: add OSTYPE(ptx2) for DYNIX/ptx 2.x from Sequent. From 9248 Paul Southworth of CICNet Systems Support. 9249 CONFIG: use -a$g as default to UUCP mailers, instead of -a$f. 9250 This causes the null return path to be rewritten as 9251 MAILER-DAEMON; otherwise UUCP gets horribly confused. 9252 From Michael Hohmuth of Technische Universitat Dresden. 9253 CONFIG: Add FEATURE(bestmx_is_local) to cause any hosts that 9254 list us as the best possible MX record to be treated as 9255 though they were local (essentially, assume that they 9256 are included in $=w). This can cause additional DNS 9257 traffic, but is easier to administer if this fits your 9258 local model. It does not work reliably if there are 9259 multiple hosts that share the best MX preference. 9260 Code contributed by John Oleynick of Rutgers. 9261 CONFIG: Add FEATURE(smrsh) to use smrsh (the SendMail Restricted 9262 SHell) instead of /bin/sh as the program used for delivery 9263 to programs. If an argument is included, it is used as 9264 the path to smrsh; otherwise, /usr/local/etc/smrsh is 9265 assumed. 9266 CONFIG: Add LOCAL_MAILER_MAX and PROCMAILER_MAILER_MAX to limit the 9267 size of messages to the local and procmail mailers 9268 respectively. Contributed by Brad Knowles of the Defense 9269 Information Systems Agency. 9270 CONFIG: Handle leading ``phrase:'' and trailing ``;'' as comments 9271 (just like text outside of angle brackets) in order to 9272 properly deal with ``group: addr1, ... addrN;'' syntax. 9273 CONFIG: Require OSTYPE macro (the defaults really don't apply to 9274 any real systems any more) and tweak the DOMAIN macro 9275 so that it is less likely that users will accidentally use 9276 the Berkeley defaults. Also, create some generic files 9277 that really can be used in the real world. 9278 CONFIG: Add new configuration macros to set character sets for 9279 messages _arriving from_ various mailers: LOCAL_MAILER_CHARSET, 9280 SMTP_MAILER_CHARSET, and UUCP_MAILER_CHARSET. 9281 CONFIG: Change UUCP_MAX_SIZE to UUCP_MAILER_MAX for consistency. 9282 The old name will still be accepted for a while at least. 9283 CONFIG: Implement DECNET_RELAY as spec for host to which DECNET 9284 mail (.DECNET pseudo-domain or node::user) will be sent. 9285 As with all relays, it can be ``mailer:hostname''. Suggested 9286 by Scott Hutton. 9287 CONFIG: Add MAILER(mail11) to get DECnet support. Code contributed 9288 by Barb Dijker of Labyrinth Computer Services. 9289 CONFIG: change confCHECK_ALIASES to default to False -- it has poor 9290 performance for large alias files, and this confused many 9291 people. 9292 CONFIG: Add confCF_VERSION to append local information to the 9293 configuration version number displayed during SMTP startup. 9294 CONFIG: fix some.newsgroup.usenet@local.host syntax (previously it 9295 would only work when locally addressed. Fix from 9296 Edvard Tuinder of Cistron Internet Services. 9297 CONFIG: use ${opMode} to avoid error on .REDIRECT addresses if option 9298 "n" (CheckAliases) is set when rebuilding alias database. 9299 Based on code contributed by Claude Marinier. 9300 CONFIG: Allow mailertable to have values of the form 9301 ``error:code message''. The ``code'' is a status code 9302 derived from the sysexits codes -- e.g., NOHOST or UNAVAILABLE. 9303 Contributed by David James <dwj@agw.bt.co.uk>. 9304 CONFIG: add MASQUERADE_DOMAIN(domain list) to extend the list of 9305 sender domains that will be replaced with the masquerade name. 9306 These domains will not be treated as local, but if mail passes 9307 through with sender addresses in those domains they will be 9308 replaced by the masquerade name. These can also be specified 9309 in a file using MASQUERADE_DOMAIN_FILE(filename). 9310 CONFIG: add FEATURE(masquerade_envelope) to masquerade the envelope 9311 as well as the header. Substantial improvements to this 9312 code were contributed by Per Hedeland. 9313 CONFIG: add MAILER(phquery) to define a new "ph" mailer; this can be 9314 accessed from a mailertable to do CCSO ph lookups. Contributed 9315 by Kimmo Suominen. 9316 CONFIG: add MAILER(cyrus) to define a new Cyrus mailer; this can be 9317 used to define cyrus and cyrusbb mailers (for IMAP support). 9318 Contributed by John Gardiner Myers of Carnegie Mellon. 9319 CONFIG: add confUUCP_MAILER to select default mailer to use for 9320 UUCP addressing. Suggested by Tom Moore of AT&T GIS. 9321 NEW FILES: 9322 cf/cf/cs-hpux10.mc 9323 cf/cf/cs-solaris2.mc 9324 cf/cf/cyrusproto.mc 9325 cf/cf/generic-bsd4.4.mc 9326 cf/cf/generic-hpux10.mc 9327 cf/cf/generic-hpux9.mc 9328 cf/cf/generic-osf1.mc 9329 cf/cf/generic-solaris2.mc 9330 cf/cf/generic-sunos4.1.mc 9331 cf/cf/generic-ultrix4.mc 9332 cf/cf/huginn.cs.mc 9333 cf/domain/berkeley-only.m4 9334 cf/domain/generic.m4 9335 cf/feature/bestmx_is_local.m4 9336 cf/feature/local_procmail.m4 9337 cf/feature/masquerade_envelope.m4 9338 cf/feature/smrsh.m4 9339 cf/feature/stickyhost.m4 9340 cf/feature/use_ct_file.m4 9341 cf/m4/cfhead.m4 9342 cf/mailer/cyrus.m4 9343 cf/mailer/mail11.m4 9344 cf/mailer/phquery.m4 9345 cf/mailer/procmail.m4 9346 cf/ostype/amdahl-uts.m4 9347 cf/ostype/bsdi2.0.m4 9348 cf/ostype/hpux10.m4 9349 cf/ostype/irix5.m4 9350 cf/ostype/isc4.1.m4 9351 cf/ostype/ptx2.m4 9352 cf/ostype/unknown.m4 9353 contrib/bsdi.mc 9354 contrib/mailprio 9355 contrib/rmail.oldsys.patch 9356 mail.local/mail.local.0 9357 makemap/makemap.0 9358 smrsh/README 9359 smrsh/smrsh.0 9360 smrsh/smrsh.8 9361 smrsh/smrsh.c 9362 src/Makefiles/Makefile.CSOS 9363 src/Makefiles/Makefile.EWS-UX_V 9364 src/Makefiles/Makefile.HP-UX.10 9365 src/Makefiles/Makefile.IRIX.5.x 9366 src/Makefiles/Makefile.IRIX64 9367 src/Makefiles/Makefile.ISC 9368 src/Makefiles/Makefile.KSR 9369 src/Makefiles/Makefile.NEWS-OS.4.x 9370 src/Makefiles/Makefile.NEWS-OS.6.x 9371 src/Makefiles/Makefile.NEXTSTEP 9372 src/Makefiles/Makefile.NonStop-UX 9373 src/Makefiles/Makefile.Paragon 9374 src/Makefiles/Makefile.SCO.3.2v4.2 9375 src/Makefiles/Makefile.SunOS.5.3 9376 src/Makefiles/Makefile.SunOS.5.4 9377 src/Makefiles/Makefile.SunOS.5.5 9378 src/Makefiles/Makefile.UNIX_SV.4.x.i386 9379 src/Makefiles/Makefile.uts.systemV 9380 src/Makefiles/Makefile.UX4800 9381 src/aliases.0 9382 src/mailq.0 9383 src/mime.c 9384 src/newaliases.0 9385 src/sendmail.0 9386 test/t_seteuid.c 9387 RENAMED FILES: 9388 cf/cf/alpha.mc => cf/cf/s2k-osf1.mc 9389 cf/cf/chez.mc => cf/cf/chez.cs.mc 9390 cf/cf/hpux-cs-exposed.mc => cf/cf/cs-hpux9.mc 9391 cf/cf/osf1-cs-exposed.mc => cf/cf/cs-osf1.mc 9392 cf/cf/s2k.mc => cf/cf/s2k-ultrix4.mc 9393 cf/cf/sunos4.1-cs-exposed.mc => cf/cf/cs-sunos4.1.mc 9394 cf/cf/ultrix4.1-cs-exposed.mc => cf/cf/cs-ultrix4.mc 9395 cf/cf/vangogh.mc => cf/cf/vangogh.cs.mc 9396 cf/domain/Berkeley.m4 => cf/domain/Berkeley.EDU.m4 9397 cf/domain/cs-exposed.m4 => cf/domain/CS.Berkeley.EDU.m4 9398 cf/domain/eecs-hidden.m4 => cf/domain/EECS.Berkeley.EDU.m4 9399 cf/domain/s2k.m4 => cf/domain/S2K.Berkeley.EDU.m4 9400 cf/ostype/hpux.m4 => cf/ostype/hpux9.m4 9401 cf/ostype/irix.m4 => cf/ostype/irix4.m4 9402 cf/ostype/ultrix4.1.m4 => cf/ostype/ultrix4.m4 9403 src/Makefile.* => src/Makefiles/Makefile.* 9404 src/Makefile.AUX => src/Makefiles/Makefile.A-UX 9405 src/Makefile.BSDI => src/Makefiles/Makefile.BSD-OS 9406 src/Makefile.DGUX => src/Makefiles/Makefile.dgux 9407 src/Makefile.RISCos => src/Makefiles/Makefile.UMIPS 9408 src/Makefile.SunOS.4.0.3 => src/Makefiles/Makefile.SunOS.4.0 9409 OBSOLETED FILES: 9410 cf/cf/cogsci.mc 9411 cf/cf/cs-exposed.mc 9412 cf/cf/cs-hidden.mc 9413 cf/cf/hpux-cs-hidden.mc 9414 cf/cf/knecht.mc 9415 cf/cf/osf1-cs-hidden.mc 9416 cf/cf/sunos3.5-cs-exposed.mc 9417 cf/cf/sunos3.5-cs-hidden.mc 9418 cf/cf/sunos4.1-cs-hidden.mc 9419 cf/cf/ultrix4.1-cs-hidden.mc 9420 cf/domain/cs-hidden.m4 9421 contrib/rcpt-streaming 9422 src/Makefiles/Makefile.SunOS.5.x 9423 94248.6.13/8.6.12 1996/01/25 9425 SECURITY: In some cases it was still possible for an attacker to 9426 insert newlines into a queue file, thus allowing access to 9427 any user (except root). 9428 CONFIG: no changes -- it is not a bug that the configuration 9429 version number is unchanged. 9430 94318.6.12/8.6.12 1995/03/28 9432 Fix to IDENT code (it was getting the size of the reply buffer 9433 too small, so nothing was ever accepted). Fix from several 9434 people, including Allan Johannesen, Shane Castle of the 9435 Boulder County Information Services, and Jeff Smith of 9436 Warwick University (all arrived within a few hours of 9437 each other!). 9438 Fix a problem that could cause large jobs to run out of 9439 file descriptors on systems that use vfork() rather 9440 than fork(). 9441 94428.6.11/8.6.11 1995/03/08 9443 The ``possible attack'' message would be logged more often 9444 than necessary if you are using Pine as a user agent. 9445 The wrong host would be reported in the ``possible attack'' 9446 message when attempted from IDENT. 9447 In some cases the syslog buffer could be overflowed when 9448 reporting the ``possible attack'' message. This can 9449 cause denial of service attacks. Truncate the message 9450 to 80 characters to prevent this problem. 9451 When reading the IDENT response a loop is needed around the 9452 read from the network to ensure that you don't get 9453 partial lines. 9454 Password entries without any shell listed (that is, a null 9455 shell) wouldn't match as "ok". Problem noted by 9456 Rob McMahon. 9457 When running BIND 4.9.x a problem could occur because the 9458 _res.options field is initialized differently than it 9459 was historically -- this requires that sendmail call 9460 res_init before it tweaks any bits. 9461 Fix an incompatibility in openxscript() between the file open mode 9462 and the stdio mode passed to fdopen. This caused UnixWare 9463 2.0 to have conniptions. Fix from Martin Sohnius of 9464 Novell Labs Europe. 9465 Fix problem with static linking of local getopt routine when 9466 using GNU's ld command. Fix from John Kennedy of 9467 Cal State Chico. 9468 It was possible to turn off privacy flags. Problem noted by 9469 *Hobbit*. 9470 Be more paranoid about writing files. Suggestions by *Hobbit* 9471 and Liudvikas Bukys. 9472 MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular) 9473 from Spider Boardman. 9474 CONFIG: No changes (version number only, to keep it in sync 9475 with the binaries). 9476 94778.6.10/8.6.10 1995/02/10 9478 SECURITY: Diagnose bogus values to some command line flags that 9479 could allow trash to get into headers and qf files. 9480 Validate the name of the user returned by the IDENT protocol. 9481 Some systems that really dislike IDENT send intentionally 9482 bogus information. Problem pointed out by Michael Bushnell 9483 of the Free Software Foundation. Has some security 9484 implications. 9485 Fix a problem causing error messages about DNS problems when 9486 the host name contained a percent sign to act oddly 9487 because it was passed as a printf-style format string. 9488 In some cases this could cause core dumps. 9489 Avoid possible buffer overrun in returntosender() if error 9490 message is quite long. From Fletcher Mattox of the 9491 University of Texas. 9492 Fix a problem that would silently drop "too many hops" error 9493 messages if and only if you were sending to an alias. 9494 From Jon Giltner of the University of Colorado and 9495 Dan Harton of Oak Ridge National Laboratory. 9496 Fix a bug that caused core dumps on some systems if -d11.2 was 9497 set and e->e_message was null. Fix from Bruce Nagel of 9498 Data General. 9499 Fix problem that can still cause df files to be left around 9500 after "hop count exceeded" messages. Fix from Andrew 9501 Chang and Shau-Ping Lo of SunSoft. 9502 Fix a problem that can cause buffer overflows on very long 9503 user names (as might occur if you piped to a program 9504 with a lot of arguments). 9505 Avoid returning an error and re-queueing if the host signature 9506 is null; this can occur on addresses like ``user@.''. 9507 Problem noted by Wesley Craig and the University of 9508 Michigan. 9509 Avoid possible calls to malloc(0) if MCI caching is turned 9510 off. Bug fix from Pierre David of the Laboratoire 9511 Parallelisme, Reseaux, Systemes et Modelisation (PRiSM), 9512 Universite de Versailles - St Quentin, and Jacky 9513 Thibault. 9514 Make a local copy of the line being sent via senttolist() -- in 9515 some cases, buffers could get trashed by map lookups 9516 causing it to do unexpected things. This also simplifies 9517 some of the map code. 9518 CONFIG: No changes (version number only, to keep it in sync 9519 with the binaries). 9520 95218.6.9/8.6.9 1994/04/19 9522 Do all mail delivery completely disconnected from any terminal. 9523 This provides consistency with daemon delivery and 9524 may have some security implications. 9525 Make sure that malloc doesn't get called with zero size, 9526 since that fails on some systems. Reported by Ed 9527 Hill of the University of Iowa. 9528 Fix multi-line values for $e (SMTP greeting message). Reported 9529 by Mike O'Connor of Ford Motor Company. 9530 Avoid syserr if no NIS domain name is defined, but the map it 9531 is trying to open is optional. From Win Bent of USC. 9532 Changes for picky compilers from Ed Gould of Digital Equipment. 9533 Hesiod support for UDB from Todd Miller of the University of 9534 Colorado. Use "hesiod" as the service name in the U 9535 option. 9536 Fix a problem that failed to set the "authentic" host name (that 9537 is, the one derived from the socket info) if you called 9538 sendmail -bs from inetd. Based on code contributed by 9539 Todd Miller (this problem was also reported by Guy Helmer 9540 of Dakota State University). This also fixes a related 9541 problem reported by Liudvikas Bukys of the University of 9542 Rochester. 9543 Parameterize "nroff -h" in all the Makefiles so people with 9544 variant versions can use them easily. Suggested by 9545 Peter Collinson of Hillside Systems. 9546 SMTP "MAIL" commands with multiple ESMTP parameters required two 9547 spaces between parameters instead of one. Reported by 9548 Valdis Kletnieks of Virginia Tech. 9549 Reduce the number of system calls during message collection by 9550 using global timeouts around the collect() loop. This 9551 code was contributed by Eric Wassenaar. 9552 If the initial hostname name gathering results in a name 9553 without a dot (usually caused by NIS misconfiguration) 9554 and BIND is compiled in, directly access DNS to get 9555 the canonical name. This should make life easier for 9556 Solaris systems. If it still can't be resolved, and 9557 if the name server is listed as "required", try again 9558 in 30 seconds. If that also fails, exit immediately to 9559 avoid bogus "config error: mail loops back to myself" 9560 messages. 9561 Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error 9562 message to explain how much space was available and 9563 sound a bit less threatening. Suggested by Stan Janet 9564 of the National Institute of Standards and Technology. 9565 If mail is delivered to an alias that has an owner, deliver any 9566 requested return-receipt immediately, and strip the 9567 Return-Receipt-To: header from the subsequent message. 9568 This prevents a certain class of denial of service 9569 attack, arguably gives more reasonable semantics, and 9570 moves things more towards what will probably become a 9571 network standard. Suggested by Christopher Davis of 9572 Kapor Enterprises. 9573 Add a "noreceipts" privacy flag to turn off all return receipts 9574 without recompiling. 9575 Avoid printing ESMTP parameters as part of the error message 9576 if there are errors during parsing. This change is 9577 purely cosmetic. 9578 Avoid sending out error messages during the collect phase of 9579 SMTP; there is an MVS mailer from UCLA that gets 9580 confused by this. Of course, I think it's their bug.... 9581 Check for the $j macro getting undefined, losing a dot, or getting 9582 lost from $=w in the daemon before accepting a connection; 9583 if it is, it dumps state, prints a LOG_ALERT message, 9584 and drops core for debugging. This is an attempt to 9585 track down a bug that I thought was long since gone. 9586 If you see this, please forward the log fragment to 9587 sendmail@sendmail.ORG. 9588 Change OLD_NEWDB from a #ifdef to a #if so it can be turned off 9589 with -DOLD_NEWDB=0 on the command line. From Christophe 9590 Wolfhugel. 9591 Instead of trying to truncate the listen queue for the server 9592 SMTP port when the load average is too high, just close 9593 the port completely and reopen it later as needed. 9594 This ensures that the other end gets a quick "connection 9595 refused" response, and that the connection can be 9596 recovered later. In particular, some socket emulations 9597 seem to get confused if you tweak the listen queue 9598 size around and can never start listening to connections 9599 again. The down side is that someone could start up 9600 another daemon process in the interim, so you could 9601 have multiple daemons all not listening to connections; 9602 this could in turn cause the sendmail.pid file to be 9603 incorrect. A better approach might be to accept the 9604 connection and give a 421 code, but that could break 9605 other mailers in mysterious ways and have paging behavior 9606 implications. 9607 Fix a glitch in TCP-level debugging that caused flag 16.101 to 9608 set debugging on the wrong socket. From Eric Wassenaar. 9609 When creating a df* temporary file, be sure you truncate any 9610 existing data in the file -- otherwise system crashes 9611 and the like could result in extra data being sent. 9612 DOC: Replace the CHANGES-R5-R8 readme file with a paper in the 9613 doc directory. This includes some additional 9614 information. 9615 CONFIG: change UUCP rules to never add $U! or $k! on the front 9616 of recipient envelope addresses. This should have been 9617 handled by the $&h trick, but broke if people were 9618 mixing domainized and UUCP addresses. They should 9619 probably have converted all the way over to uucp-uudom 9620 instead of uucp-{new,old}, but the failure mode was to 9621 loop the mail, which was bad news. 9622 Portability fixes: 9623 Newer BSDI systems (several people). 9624 Older BSDI systems from Christophe Wolfhugel. 9625 Intergraph CLIX, from Paul Southworth of CICNet. 9626 UnixWare, from Evan Champion. 9627 NetBSD from Adam Glass. 9628 Solaris from Quentin Campbell of the University of 9629 Newcastle upon Tyne. 9630 IRIX from Dean Cookson and Bill Driscoll of Mitre 9631 Corporation. 9632 NCR 3000 from Kevin Darcy of Chrysler Financial Corporation. 9633 SunOS (it has setsid() and setvbuf() calls) from 9634 Jonathan Kamens of OpenVision Technologies. 9635 HP-UX from Tor Lillqvist. 9636 New Files: 9637 src/Makefile.CLIX 9638 src/Makefile.NCR3000 9639 doc/changes/Makefile 9640 doc/changes/changes.me 9641 doc/changes/changes.ps 9642 96438.6.8/8.6.6 1994/03/21 9644 SECURITY: it was possible to read any file as root using the 9645 E (error message) option. Reported by Richard Jones; 9646 fixed by Michael Corrigan and Christophe Wolfhugel. 9647 96488.6.7/8.6.6 1994/03/14 9649 SECURITY: it was possible to get root access by using weird 9650 values to the -d flag. Thanks to Alain Durand of 9651 INRIA for forwarding me the notice from the bugtraq 9652 list. 9653 96548.6.6/8.6.6 1994/03/13 9655 SECURITY: the ability to give files away on System V-based 9656 systems proved dangerous -- don't run as the owner 9657 of a :include: file on a system that allows giveaways. 9658 Unfortunately, this also applies to determining a 9659 valid shell. 9660 IMPORTANT: Previous versions weren't expiring old connections 9661 in the connection cache for a long time under some 9662 circumstances. This could result in resource exhaustion, 9663 both at your end and at the other end. This checks the 9664 connections for timeouts much more frequently. From 9665 Doug Anderson of NCSC. 9666 Fix a glitch that snuck in that caused programs to be run as 9667 the sender instead of the recipient if the mail was 9668 from a local user to another local user. From 9669 Motonori Nakamura of Kyoto University. 9670 Fix "wildcard" on /etc/shells matching -- instead of looking 9671 for "*", look for "/SENDMAIL/ANY/SHELL/". From 9672 Bryan Costales of ICSI. 9673 Change the method used to declare the "statfs" availability; 9674 instead of HASSTATFS and/or HASUSTAT with a ton of 9675 tweaking in conf.c, there is a single #define called 9676 SFS_TYPE which takes on one of six values (SFS_NONE 9677 for no statfs availability, SFS_USTAT for the ustat(2) 9678 syscall, SFS_4ARGS for a four argument statfs(2) call, 9679 and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument 9680 statfs(2) call with the declarations in <sys/vfs.h>, 9681 <sys/mount.h>, or <sys/statfs.h> respectively). 9682 Fix glitch in NetInfo support that could return garbage if 9683 there was no "/locations/sendmail" property. From 9684 David Meyer of the University of Virginia. 9685 Change HASFLOCK from defined/not-defined to a 0/1 definition 9686 to allow Linux to turn it off even though it is a 9687 BSD-like system. 9688 Allow setting of "ident" timeout to zero to turn off the ident 9689 protocol entirely. 9690 Make 7-bit stripping local to a connection (instead of to a 9691 mailer); this allows you to specify that SMTP is a 9692 7-bit channel, but revert to 8-bit should it advertise 9693 that it supports 8BITMIME. You still have to specify 9694 mailer flag 7 to get this stripping at all. 9695 Improve makesendmail script so it handles more cases automatically. 9696 Tighten up restrictions on taking ownership of :include: files 9697 to avoid problems on systems that allow you to give away 9698 files. 9699 Fix a problem that made it impossible to rebuild the alias 9700 file if it was on a read-only file system. From 9701 Harry Edmon of the University of Washington. 9702 Improve MX randomization function. From John Gardiner Myers 9703 of CMU. 9704 Fix a minor glitch causing a bogus message to be printed (used 9705 %s instead of %d in a printf string for the line number) 9706 when a bad queue file was read. From Harry Edmon. 9707 Allow $s to remain NULL on locally generated mail. I'm not 9708 sure this is necessary, but a lot of people have complained 9709 about it, and there is a legitimate question as to whether 9710 "localhost" is legal as an 822-style domain. 9711 Fix a problem with very short line lengths (mailer L= flag) in 9712 headers. This causes a leading space to be added onto 9713 continuation lines (including in the body!), and also 9714 tries to wrap headers containing addresses (From:, To:, 9715 etc) intelligently at the shorter line lengths. Problem 9716 Reported by Lars-Johan Liman of SUNET Operations Center. 9717 Log the real user name when logging syserrs, since these can have 9718 security implications. Suggested by several people. 9719 Fix address logging of cached connections -- it used to always 9720 log the numeric address as zero. This is a somewhat 9721 bogus implementation in that it does an extra system 9722 call, but it should be an inexpensive one. Fix from 9723 Motonori Nakamura. 9724 Tighten up handling of short syslog buffers even more -- there 9725 were cases where the outgoing relay= name was too long 9726 to share a line with delay= and mailer= logging. 9727 Limit the overhead on split envelopes to one open file descriptor 9728 per envelope -- previously the overhead was three 9729 descriptors. This was in response to a problem reported 9730 by P{r (Pell) Emanuelsson. 9731 Fixes to better handle the case of unexpected connection closes; 9732 this redirects the output to the transcript so the info 9733 is not lost. From Eric Wassenaar. 9734 Fix potential string overrun if you macro evaluate a string that 9735 has a naked $ at the end. Problem noted by James Matheson 9736 <jmrm@eng.cam.ac.uk>. 9737 Make default error number on $#error messages 553 (``Requested 9738 action not taken: mailbox name not allowed'') instead of 9739 501 (``Syntax error in parameters or arguments'') to 9740 avoid bogus "protocol error" messages. 9741 Strip off any existing trailing dot on names during $[ ... $] 9742 lookup. This prevents it from ending up with two dots 9743 on the end of dot terminated names. From Wesley Craig 9744 of the University of Michigan and Bryan Costales of ICSI. 9745 Clean up file class reading so that the debugging information is 9746 more informative. It hadn't been using setclass, so you 9747 didn't see the class items being added. 9748 Avoid core dump if you are running a version of sendmail where 9749 NIS is compiled in, and you specify an NIS map, but 9750 NIS is not running. Fix from John Oleynick of 9751 Rutgers. 9752 Diagnose bizarre case where res_search returns a failure value, 9753 but sets h_errno to a success value. 9754 Make sure that "too many hops" messages are considered important 9755 enough to send an error to the Postmaster (that is, the 9756 address specified in the P option). This fix should 9757 help problems that cause the df file to be left around 9758 sometimes -- unfortunately, I can't seem to reproduce 9759 the problem myself. 9760 Avoid core dump (null pointer reference) on EXPN command; this 9761 only occurred if your log level was set to 10 or higher 9762 and the target account was an alias or had a .forward file. 9763 Problem noted by Janne Himanka. 9764 Avoid "denial of service" attacks by someone who is flooding your 9765 SMTP port with bad commands by shutting the connection 9766 after 25 bad commands are issued. From Kyle Jones of 9767 UUNET. 9768 Fix core dump on error messages with very long "to" buffers; 9769 fmtmsg overflows the message buffer. Fixed by trimming 9770 the to address to 203 characters. Problem reported by 9771 John Oleynick. 9772 Fix configuration for HASFLOCK -- there were some spots where 9773 a #ifndef was incorrectly #ifdef. Pointed out by 9774 George Baltz of the University of Maryland. 9775 Fix a typo in savemail() that could cause the error message To: 9776 lists to be incorrect in some places. From Motonori 9777 Nakamura. 9778 Fix a glitch that can cause duplicate error messages on split 9779 envelopes where an address on one of the lists has a 9780 name server failure. Fix from Voradesh Yenbut of the 9781 University of Washington. 9782 Fix possible bogus pointer reference on ESMTP parameters that 9783 don't have an ``=value'' part. 9784 CNAME loops caused an error message to be generated, but also 9785 re-queued the message. Changed to just re-queue the 9786 message (it's really hard to just bounce it because 9787 of the weird way the name server works in the presence 9788 of CNAME loops). Problem noted by James M.R.Matheson 9789 of Cambridge University. 9790 Avoid giving ``warning: foo owned process doing -bs'' messages 9791 if they use ``MAIL FROM:<foo>'' where foo is their true 9792 user name. Suggested by Andreas Stolcke of ICSI. 9793 Change the NAMED_BIND compile flag to be a 0/1 flag so you can 9794 override it easily in the Makefile -- that is, you can 9795 turn it off using -DNAMED_BIND=0. 9796 If a gethostbyname(...) of an address with a trailing dot fails, 9797 try it without the trailing dot. This is because if 9798 you have a version of gethostbyname() that falls back 9799 to NIS or the /etc/hosts file it will fail to find 9800 perfectly reasonable names that just don't happen to 9801 be dot terminated in the hosts file. You don't want to 9802 strip the dot first though because we're trying to ensure 9803 that country names that match one of your subdomains get 9804 a chance. 9805 PRALIASES: fix bogus output on non-null-terminated strings. 9806 From Bill Gianopoulos of Raytheon. 9807 CONFIG: Avoid rewriting anything that matches $w to be $j. 9808 This was in code intended to only catch the self-literal 9809 address (that is, [1.2.3.4], where 1.2.3.4 is your 9810 IP address), but the code was broken. However, it will 9811 still do this if $M is defined; this is necessary to 9812 get client configurations to work (sigh). Note that this 9813 means that $M overrides :mailname entries in the user 9814 database! Problem noted by Paul Southworth. 9815 CONFIG: Fix definition of Solaris help file location. From 9816 Steve Cliffe <steve@gorgon.cs.uow.edu.au>. 9817 CONFIG: Fix bug that broke news.group.USENET mappings. 9818 CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX, 9819 and USENET_MAILER_MAX to tweak the maximum message 9820 size for various mailers. 9821 CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0] 9822 instead of assuming that it is "inews" for consistency 9823 with other mailers. From Michael Corrigan of UC San Diego. 9824 CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB, 9825 qualify the address in the SMTP envelope as user@{relay|hub} 9826 instead of user@$j. From Bill Wisner of The Well. 9827 CONFIG: Fix route-addr syntax in nullrelay configuration set. 9828 CONFIG: Don't turn off case mapping of user names in the local 9829 mailer for IRIX. This was different than most every other 9830 system. 9831 CONFIG: Avoid infinite loops on certainly list:; syntaxes in 9832 envelope. Noted by Thierry Besancon 9833 <besancon@excalibur.ens.fr>. 9834 CONFIG: Don't include -z by default on uux line -- most systems 9835 don't want it set by default. Pointed out by Philippe 9836 Michel of Thomson CSF. 9837 CONFIG: Fix some bugs with mailertables -- for example, if your 9838 host name was foo.bar.ray.com and you matched against 9839 ".ray.com", the old implementation bound %1 to "bar" 9840 instead of "foo.bar". Also, allow "." in the mailertable 9841 to match anything -- essentially, take over SMART_HOST. 9842 This also moves matching of explicit local host names 9843 before the mailertable so they don't have to be special 9844 cased in the mailertable data. Reported by Bill 9845 Gianopoulos of Raytheon; the fix for the %1 binding 9846 problem was contributed by Nicholas Comanos of the 9847 University of Sydney. 9848 CONFIG: Don't include "root" in class $=L (users to deliver 9849 locally, even if a hub or relay exists) by default. 9850 This is because of the known bug where definition of 9851 both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore 9852 both and deliver into the local mailbox. 9853 CONFIG: Move up bitdomain and uudomain handling so that they 9854 are done before .UUCP class matching; uudomain was 9855 reported as ineffective before. This also frees up 9856 diversion 8 for future use. Problem reported by Kimmo 9857 Suominen. 9858 CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4]) 9859 into host names. As pointed out by Jonathan Kamens, 9860 these are often used because either the forward or reverse 9861 mapping is broken; this translation makes it broken again. 9862 DOC: Clarify $@ and $: in the Install & Op Guide. From Kimmo 9863 Suominen. 9864 Portability fixes: 9865 Unicos from David L. Kensiski of Sterling Software. 9866 DomainOS from Don Lewis of Silicon Systems. 9867 GNU m4 1.0.3 from Karst Koymans of Utrecht University. 9868 Convex from Kimmo Suominen <kim@tac.nyc.ny.us>. 9869 NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>. 9870 BSD/386 from Tony Sanders of BSDI. 9871 Apollo from Eric Wassenaar. 9872 DGUX from Doug Anderson. 9873 Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent. 9874 NEW FILES: 9875 src/Makefile.DomainOS 9876 src/Makefile.PTX 9877 src/Makefile.SunOS.5.1 9878 src/Makefile.SunOS.5.2 9879 src/Makefile.SunOS.5.x 9880 src/mailq.1 9881 cf/ostype/domainos.m4 9882 doc/op/Makefile 9883 doc/intro/Makefile 9884 doc/usenix/Makefile 9885 98868.6.5/8.6.5 1994/01/13 9887 Security fix: /.forward could be owned by anyone (the test 9888 to allow root to own any file was backwards). From 9889 Bob Campbell at U.C. Berkeley. 9890 Security fix: group ids were not completely set when programs 9891 were invoked. This caused programs to have group 9892 permissions they should not have had (usually group 9893 daemon instead of their own group). In particular, 9894 Perl scripts would refuse to run. 9895 Security: check to make sure files that are written are not 9896 symbolic links (at least under some circumstances). 9897 Although this does not respond to a specific known 9898 attack, it's just a good idea. Suggested by 9899 Christian Wettergren. 9900 Security fix: if a user had an NFS mounted home directory on 9901 a system with a restricted shell listed in their 9902 /etc/passwd entry, they could still execute any 9903 program by putting that in their .forward file. 9904 This fix prevents that by insisting that their shell 9905 appear in /etc/shells before allowing a .forward to 9906 execute a program or write a file. You can disable 9907 this by putting "*" in /etc/shells. It also won't 9908 permit world-writable :include: files to reference 9909 programs or files (there's no way to disable this). 9910 These behaviors are only one level deep -- for 9911 example, it is legal for a world-writable :include: 9912 file to reference an alias that writes a file, on 9913 the assumption that the alias file is well controlled. 9914 Security fix: root was not treated suspiciously enough when 9915 looking into subdirectories. This would potentially 9916 allow a cracker to examine files that were publicly 9917 readable but in a non-publicly searchable directory. 9918 Fix a problem that causes an error on QUIT on a cached 9919 connection to create problems on the current job. 9920 These are typically unrelated, so errors occur in 9921 the wrong place. 9922 Reset CurrentLA in sendall() -- this makes sendmail queue 9923 runs more responsive to load average, and fixes a 9924 problem that ignored the load average in locally 9925 generated mail. From Eric Wassenaar. 9926 Fix possible core dump on aliases with null LHS. From 9927 John Orthoefer of BB&N. 9928 Revert to using flock() whenever possible -- there are just 9929 too many bugs in fcntl() locking, particularly over 9930 NFS, that cause sendmail to fail in perverse ways. 9931 Fix a bug that causes the connection cache to get confused 9932 when sending error messages. This resulted in 9933 "unexpected close" messages. It should fix itself 9934 on the following queue run. Problem noted by 9935 Liudvikas Bukys of the University of Rochester. 9936 Include $k in $=k as documented in the Install & Op Guide. 9937 This seems odd, but it was documented.... From 9938 Michael Corrigan of UCSD. 9939 Fix problem that caused :include:s from alias files to be 9940 forced to be owned by root instead of daemon 9941 (actually DefUid). From Tim Irvin. 9942 Diagnose unrecognized I option values -- from Mortin Forssen 9943 of the Chalmers University of Technology. 9944 Make "error" mailer work consistently when there is no error 9945 code associated with it -- previously it returned OK 9946 even though there was a real problem. Now it assumes 9947 EX_UNAVAILABLE. 9948 Fix bug that caused the last header line of messages that had 9949 no body and which were terminated with EOF instead of 9950 "." to be discarded. Problem noted by Liudvikas Bukys. 9951 Fix core dump on SMTP mail to programs that failed -- it tried 9952 to go to a "next MX host" when none existed, causing 9953 a core dump. From der Mouse at McGill University. 9954 Change IDENTPROTO from a defined/not defined to a 0/1 switch; 9955 this makes it easier to turn it off (using 9956 -DIDENTPROTO=0 in the Makefile). From der Mouse. 9957 Fix YP_MASTER_NAME store to use the unupdated result of 9958 gethostname() (instead of myhostname(), which tries 9959 to fully qualify the name) to be consistent with 9960 SunOS. If your hostname is unqualified, this fixes 9961 transfers to secondary servers. Bug noted by Keith 9962 McMillan of Ameritech Services, Inc. 9963 Fix Ultrix problem: gethostbyname() can return a very large 9964 (> 500) h_length field, which causes the sockaddr 9965 to be trashed. Use the size of the sockaddr instead. 9966 Fix from Bob Manson of Ohio State. 9967 Don't assume "-a." on host lookups if NAMED_BIND is not 9968 defined -- this confuses gethostbyname on hosts 9969 file lookups, which doesn't understand the trailing 9970 dot convention. 9971 Log SMTP server subprocesses that die with a signal instead 9972 of from a clean exit. 9973 If you don't have option "I" set, don't assume that a DNS 9974 "host unknown" message is authoritative -- it 9975 might still be found in /etc/hosts. 9976 Fix a problem that would cause Deferred: messages to be sent 9977 as the subject of an error message, even though the 9978 actual cause of a message was more severe than that. 9979 Problem noted by Chris Seabrook of OSSI. 9980 Fix race condition in DBM alias file locking. From Kyle 9981 Jones of UUNET. 9982 Limit delivery syslog line length to avoid bugs in some 9983 versions of syslog(3). This adds a new compile time 9984 variable SYSLOG_BUFSIZE. From Jay Plett of Princeton 9985 University, which is in turn derived from IDA. 9986 Fix quotes inside of comments in addresses -- previously 9987 it insisted that they be balanced, but the 822 spec 9988 says that they should be ignored. 9989 Dump open file state to syslog upon receiving SIGUSR1 (for 9990 debugging). This also evaluates ruleset 89, if set 9991 (with the null input), and logs the result. This 9992 should be used sparingly, since the rewrite process 9993 is not reentrant. 9994 Change -qI, -qR, and -qS flags to be case-insensitive as 9995 documented in the Bat Book. 9996 If the mailer returned EX_IOERR or EX_OSERR, sendmail did not 9997 return an error message and did not requeue the message. 9998 Fix based on code from Roland Dirlewanger of 9999 Reseau Regional Aquarel, Bordeaux, France. 10000 Fix a problem that caused a seg fault if you got a 421 error 10001 code during some parts of connection initialization. 10002 I've only seen this when talking to buggy mailers on 10003 the other end, but it shouldn't give a seg fault in 10004 any case. From Amir Plivatsky. 10005 Fix core dump caused by a ruleset call that returns null. 10006 Fix from Bryan Costales of ICSI. 10007 Full-Name: field was being ignored. Fix from Motonori Nakamura 10008 of Kyoto University. 10009 Fix a possible problem with very long input lines in setproctitle. 10010 From P{r Emanuelsson. 10011 Avoid putting "This is a warning message" out on return receipts. 10012 Suggested by Douglas Anderson. 10013 Detect loops caused by recursive ruleset calls. Suggested by 10014 Bryan Costales. 10015 Initialize non-alias maps during alias rebuilds -- they may be 10016 needed for parsing. Problem noted by Douglas Anderson. 10017 Log sender address even if no message was collected in SMTP 10018 (e.g., if all RCPTs failed). Suggested by Motonori 10019 Nakamura. 10020 Don't reflect the owner-list contents into the envelope sender 10021 address if the value contains ", :, /, or | (to avoid 10022 illegal addresses appearing there). 10023 Efficiency hack for toktype macro -- from Craig Partridge of 10024 BB&N. 10025 Clean up DNS error printing so that a host name is always 10026 included. 10027 Remember to set $i during queue runs. Reported by Stephen 10028 Campbell of Dartmouth University. 10029 If the environment variable HOSTALIASES is set, use it during 10030 canonification as the name of a file with per-user host 10031 translations so that headers are properly mapped. Reported 10032 by Anne Bennett of Concordia University. 10033 Avoid printing misleading error message if SMTP mailer (not 10034 using [IPC]) should die on a core dump. 10035 Avoid incorrect diagnosis of "file 1 closed" when it is caused 10036 by the other end closing the connection. From 10037 Dave Morrison of Oracle. 10038 Improve several of the error messages printed by "mailq" 10039 to include a host name or other useful information. 10040 Add NetInfo preliminary support for NeXT systems. From Vince 10041 DeMarco. 10042 Fix a glitch that sometimes caused :include:s that pointed to 10043 NFS filesystems that were down to give an "aliasing/ 10044 forwarding loop broken" message instead of queueing 10045 the message for retry. Noted by William C Fenner of 10046 the NRL Connection Machine Facility. 10047 Fix a problem that could cause a core dump if the input sequence 10048 had (or somehow acquired) a \231 character. 10049 Make sure that route-addrs always have <angle brackets> around 10050 them in non-SMTP envelopes (SMTP envelopes already do 10051 this properly). 10052 Avoid weird headers on unbalanced punctuation of the form: 10053 ``Joe User <user)'' -- this caused reference to the 10054 null macro. Fix from Rick McCarty of IO.COM. 10055 Fix a problem that caused an alias "user: user@local.host" to 10056 not have the QNOTREMOTE bit set; this caused configs 10057 to act as if FEATURE(notsticky) was defined even when 10058 it was not. The effect of the problem was to make it 10059 very hard to to set up satellite sites that had a few 10060 local accounts, with everything else forwarded to a 10061 corporate hub. Reported by Detlef Drewanz of the 10062 University of Rostock and Mark Frost of NCD. 10063 Change queuing to not call rulesets 3, {1 or 2}, 4 on header 10064 addresses. This is more efficient (fewer name server 10065 calls) and fixes certain unusual configurations, such 10066 as those that have ruleset 4 do something that is 10067 non-idempotent unless a mailer-specific ruleset did 10068 something else. Problem reported by Brian J. Coan 10069 of the Institute for Global Communications. 10070 Fix the "obsolete argument" routine in main to better understand 10071 new arguments. For example, if you used ``sendmail 10072 -C config -v -q'' it would choke on the -q because 10073 the -C would stop looking for old-format arguments. 10074 Fix the code that was intended to allow two users to forward their 10075 mail to the same program and have them appear unique. 10076 Portability fixes for: 10077 SCO UNIX from Murray Kucherawy. 10078 SCO Open Server 3.2v4 from Philippe Brand. 10079 System V Release 4 from Rick Ellis and others. 10080 OSF/1 from Steve Campbell. 10081 DG/UX from Ben Mesander of the USGS and Bryan Curnutt 10082 of Stoner Associates. 10083 Motorola SysV88 from Kevin Johnson of Motorola. 10084 Solaris 2.3 from Casper H.S. Dik of the University 10085 of Amsterdam and John Caruso of University 10086 of Maryland. 10087 FreeBSD from Ollivier Robert. 10088 NetBSD from Adam Glass. 10089 TitanOS from Kate Hedstrom of Rutgers University. 10090 Irix from Bryan Curnutt. 10091 Dynix from Jim Davis of the University of Arizona. 10092 RISC/os. 10093 Linux from John Kennedy of California State University 10094 at Chico. 10095 Solaris 2.x from Tony Boner of the U.S. Air Force. 10096 NEXTSTEP 3.x from Vince DeMarco. 10097 HP-UX from various people. NOTA BENE: the location 10098 of the config file has moved to /usr/lib 10099 to match the HP-UX version of sendmail. 10100 CONFIG: Don't do any recipient rewriting on relay mailer; 10101 since this is intended only for internal use, the 10102 usual RFC 821/822/1123 rules can be relaxed. The 10103 main point of this is to avoid munging (ugh) UUCP 10104 addresses when relaying internally. 10105 CONFIG: fix typo in mailer/uucp.m4 that mutilates list:; 10106 syntax addresses delivered via UUCP. Solution 10107 provided by Peter Wemm. 10108 CONFIG: fix thumb-fumble in default UUCP relaying in ruleset 10109 zero; it caused double @ signs in addresses. From 10110 Irving Reid of the University of Toronto. 10111 CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1 10112 from Markku Toijala of ICL Personal Systems Oy. 10113 CONFIG: Add trailing "." on pseudo-domains for consistency; 10114 this fixes a problem (noted by Al Whaley of Sunnyside) 10115 that made it hard to recognize your own pseudodomain 10116 names. 10117 CONFIG: catch "@host" syntax errors (i.e., null local-parts) 10118 rather than letting them get "local configuration 10119 error"s. Problem noted by John Gardiner Myers. 10120 CONFIG: add uucp-uudom mailer variant, based on code posted 10121 by Spider Boardman <spider@Orb.Nashua.NH.US>; this 10122 has uucp-dom semantics but old UUCP syntax. This 10123 also permits "uucp-old" as an alias for "uucp" and 10124 "uucp-new" as a synonym for "suucp" for consistency. 10125 CONFIG: add POP mailer support (from Kimmo Suominen 10126 <kim@grendel.lut.fi>). 10127 CONFIG: drop CSNET_RELAY support -- CSNET is long gone. 10128 CONFIG: fix bug caused with domain literal addresses (e.g., 10129 ``[128.32.131.12]'') when FEATURE(allmasquerade) 10130 was set; it would get an additional @masquerade.host 10131 added to the address. Problem noted by Peter Wan 10132 of Georgia Tech. 10133 CONFIG: make sure that the local UUCP name is in $=w. From 10134 Jim Murray of Stratus. 10135 CONFIG: changes to UUCP rewriting to simulate IDA-style "V" 10136 mailer flag. Briefly, if you are sending to host 10137 "foo", then it rewrites "foo!...!baz" to "...!baz", 10138 "foo!baz" remains "foo!baz", and anything else has 10139 the local name prepended. 10140 CONFIG: portability fixes for HP-UX. 10141 DOC: several minor problems fixed in the Install & Op Guide. 10142 MAKEMAP: fix core dump problem on lines that are too long or 10143 which lack newline. From Mark Delany. 10144 MAILSTATS: print sums of columns (total messages & kbytes 10145 in and out of the system). From Tom Ferrin of UC 10146 San Francisco Computer Graphics Lab. 10147 SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES: 10148 On HP-UX, /etc/sendmail.cf has been moved to 10149 /usr/lib/sendmail.cf to match HP sendmail. 10150 Permissions have been tightened up on world-writable 10151 :include: files and accounts that have shells 10152 that are not listed in /etc/shells. This may 10153 cause some .forward files that have worked 10154 before to start failing. 10155 SIGUSR1 dumps some state to the log. 10156 NEW FILES: 10157 src/Makefile.DGUX 10158 src/Makefile.Dynix 10159 src/Makefile.FreeBSD 10160 src/Makefile.Mach386 10161 src/Makefile.NetBSD 10162 src/Makefile.RISCos 10163 src/Makefile.SCO 10164 src/Makefile.SVR4 10165 src/Makefile.Titan 10166 cf/mailer/pop.m4 10167 cf/ostype/bsdi1.0.m4 10168 cf/ostype/dgux.m4 10169 cf/ostype/dynix3.2.m4 10170 cf/ostype/sco3.2.m4 10171 makemap/Makefile.dist 10172 praliases/Makefile.dist 10173 101748.6.4/8.6.4 1993/10/31 10175 Repair core-dump problem (write to read-only memory segment) 10176 if you fall back to the return-to-Postmaster case in 10177 savemail. Problem reported by Richard Liu. 10178 Immediately diagnose bogus sender addresses in SMTP. This 10179 makes quite certain that crackers can't use this 10180 class of attack. 10181 Reliability Fix: check return value from fclose() and fsync() 10182 in a few critical places. 10183 Minor problem in initsys() that reversed a condition for 10184 redirecting the output channel on queue runs. It's 10185 not clear this code even does anything. From Eric 10186 Wassenaar of the Dutch National Institute for Nuclear 10187 and High-Energy Physics. 10188 Fix some problems that caused queue runs to do "too much work", 10189 such as double-reading the Errors-To: header. From 10190 Eric Wassenaar. 10191 Error messages on writing the temporary file (including the 10192 data file) were getting suppressed in SMTP -- this 10193 fix causes them to be properly reported. From Eric 10194 Wassenaar. 10195 Some changes to support AF_UNIX sockets -- this will only 10196 really become relevant in the next release, but some 10197 people need it for local patches. From Michael 10198 Corrigan of UC San Diego. 10199 Use dynamically allocated memory (instead of static buffers) 10200 for macros defined in initsys() and settime(); since 10201 these can have different values depending on which 10202 envelope they are in. From Eric Wassenaar. 10203 Improve logging to show ctladdr on to= logging; this tells you 10204 what uid/gid processes ran as. 10205 Fix a problem that caused error messages to be discarded if 10206 the sender address was unparseable for some reason; 10207 this was supposed to fall back to the "return to 10208 postmaster" case. 10209 Improve aliaswait backoff algorithm. 10210 Portability patches for Linux (8.6.3 required another header 10211 file) (from Karl London) and SCO UNIX. 10212 CONFIG: patch prog mailer to not strip host name off of envelope 10213 addresses (so that it matches local again). From 10214 Christopher Davis. 10215 CONFIG: change uucp-dom mailer so that "<>" translates to $n; 10216 this prevents uux from seeing lines with null names like 10217 ``From Sat Oct 30 14:55:31 1993''. From Motonori 10218 Nakamura of Kyoto University. 10219 CONFIG: handle <list:;> syntax correctly. This isn't legal, but 10220 it shouldn't fail miserably. From Motonori Nakamura. 10221 102228.6.2/8.6.2 1993/10/15 10223 Put a "successful delivery" message in the transcript for 10224 addresses that get return-receipts. 10225 Put a prominent "this is only a warning" message in warning 10226 messages -- some people don't read carefully enough 10227 and end up sending the message several times. 10228 Include reason for temporary failure in the "warning" return 10229 message. Currently, it just says "cannot send for 10230 four hours". 10231 Fix the "Original message received" time generated for 10232 returntosender messages. It was previously listed as 10233 the current time. Bug reported by Eric Hagberg of 10234 Cornell University Medical College. 10235 If there is an error when writing the body of a message, 10236 don't send the trailing dot and wait for a response 10237 in sender SMTP, as this could cause the connection to 10238 hang up under some bizarre circumstances. From Eric 10239 Wassenaar. 10240 Fix some server SMTP synchronization problems caused when 10241 connections fail during message collection. From 10242 Eric Wassenaar. 10243 Fix a problem that can cause srvrsmtp to reject mail if the 10244 name server is down -- it accepts the RCPT but rejects 10245 the DATA command. Problem reported by Jim Murray of 10246 Stratus. 10247 Fix a problem that can cause core dumps if the config file 10248 incorrectly resolves to a null hostname. Reported by 10249 Allan Johannesen of WPI. 10250 Non-root use of -C flag, dangerous -f flags, and use of -oQ 10251 by non-root users were not put into 10252 X-Authentication-Warning:s as intended because the 10253 config file hadn't set the PrivacyOptions yet. Fix 10254 from Sven-Ove Westberg of the University of Lulea. 10255 Under very odd circumstances, the alias file rebuild code 10256 could get confused as to whether a database was 10257 open or not. 10258 Check "vendor code" on the end of V lines -- this is 10259 intended to provide a hook for vendor-specific 10260 configuration syntax. (This is a "new feature", 10261 but I've made an exception to my rule in a belief 10262 that this is a highly exceptional case.) 10263 Portability fixes for DG/UX (from Douglas Anderson of NCSC), 10264 SCO Unix (from Murray Kucherawy), A/UX, and OSF/1 10265 (from Jon Forrest of UC Berkeley) 10266 CONFIG: fix ``mailer:host'' form of UUCP relay naming. 10267 102688.6.1/8.6 1993/10/08 10269 Portability fixes for A/UX and Encore UMAX V. 10270 Fix error message handling -- if you had a name server down 10271 causing an error during parsing, that message was never 10272 propagated to the queue file. 10273 102748.6/8.6 1993/10/05 10275 Configuration cleanup: make it easier to undo IDENTPROTO in 10276 conf.h (other systems have the same bug). 10277 If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume 10278 getdtablesize() instead of sysconf(); a disturbingly 10279 large number of systems defined _SC_OPEN_MAX in the 10280 header files but don't have the syscall. 10281 Another patch to really truly ignore MX records in getcanonname 10282 if trymx == FALSE. 10283 Fix problem that caused the "250 IAA25499 Message accepted for 10284 delivery" message to be omitted if there was an error 10285 in the header of the message (e.g., a bad Errors-To: 10286 line). Pointed out by Michael Corrigan of UCSD. 10287 Announce name of host we are chatting when we get errors; this 10288 is an IDA-ism suggested by Christophe Wolfhugel. 10289 Portability fixes for Alpha OSF/1 (from Anthony Baxter of the 10290 Australian Artificial Intelligence Institute), SCO Unix 10291 (from Murray Kucherawy of Hookup Communication Corp.), 10292 NeXT (from Vince DeMarco and myself), Linux (from 10293 Karl London <karl@borg.demon.co.uk>), BSDI (from 10294 Christophe Wolfhugel, and SVR4 on Dell (from Kimmo 10295 Suominen), AUX 3.0 on Macintosh, and ANSI C compilers. 10296 Some changes to get around gcc optimizer bugs. From Takahiro 10297 Kanbe. 10298 Fix error recovery in queueup if another tf file of the same 10299 name already exists. Problem stumbled over by Bill 10300 Wisner of The Well. 10301 Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes. 10302 Problem noted by Keith McMillan of Ameritech Services. 10303 Deal with group permissions properly when opening .forward and 10304 :include: files. This relaxes the 8.1C restrictions 10305 slightly more. This includes proper setting of groups 10306 when reading :include: files, allowing you to read some 10307 files that you should be able to read but have previously 10308 been denied unless you owned them or they had "other" 10309 read permission. 10310 Make certain that $j is in $=w (after the .cf is read) so that 10311 if the user is forced to override some silly system, 10312 MX suppression will still work. 10313 Fix a couple of efficiency problems where newstr was double- 10314 calling expensive routines. In at least one case, it 10315 wasn't guaranteed that they would always return the 10316 same result. Problem noted by Christophe Wolfhugel. 10317 Fix null pointer dereference in putoutmsg -- only on an error 10318 condition from a non-SMTP mailer. From Motonori 10319 Nakamura. 10320 Macro expand "C" line class definitions before scanning so that 10321 "CX $Z" works. 10322 Fix problem that caused error message to be sent while still 10323 trying to send the original message if the connection 10324 is closed during a DATA command after getting an error 10325 on an RCPT command (pretty obscure). Problem reported 10326 by John Myers of CMU. 10327 Fix reply to NOOP to be 250 instead of 200 -- this is a long 10328 term bug. 10329 Fix a nasty bug causing core dumps when returning the "warning: 10330 cannot deliver for N hours -- will keep trying" message; 10331 it only occurred if you had PostmasterCopy set and 10332 only on some architectures. Although sendmail would 10333 keep trying, it would send error messages on each 10334 queue interval. This is an important fix. 10335 Allow u and g options to take user and group names respectively. 10336 Don't do a chdir into the queue directory in -bt mode to make 10337 ruleset testing a bit easier. 10338 Don't allow users to turn off logging (using -oL) on the command 10339 line -- command line can only raise, not lower, logging 10340 level. 10341 Set $u to the original recipient on the SMTP transaction or on 10342 the command line. This is only done if there is exactly 10343 one recipient. Technically, this does not meet the 10344 specs, because it does not guarantee a domain on the 10345 address. 10346 Fix a problem that dumped error messages on bad addresses if 10347 you used the -t flag. Problem noted by Josh Smith of 10348 Harvey Mudd College. 10349 Given an address such as ``<foo> <bar>'', auto-quote the first 10350 ``<foo>'' part, giving ``"<foo>" <bar>''. This is to 10351 avoid the problem of people who use angle brackets in 10352 their full name information. 10353 Fix a null pointer dereference if you set option "l", have 10354 an Errors-To: header in the message, and have Errors-To: 10355 defined in the config file H lines. From J.R. Oldroyd. 10356 Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get 10357 wrong when compiling. Suggested by Rick McCarty of TI. 10358 Fix a problem that could pass negative SIZE parameter if the 10359 df file got lost; this would cause servers to always 10360 give a temporary failure, making the problem even worse. 10361 Problem noted by Allan Johannesen of WPI. 10362 Add "ident" timeout (one of the "r" option selectors) for IDENT 10363 protocol timeouts (30s default). Requested by Murray 10364 Kucherawy of HookUp Communication Corp. to handle bogus 10365 PC TCP/IP implementations. 10366 Change $w default definition to be just the first component of 10367 the domain name on config level 5. The $j macro defaults 10368 to the FQDN; $m remains as before. This lets well-behaved 10369 config files use any of the short, long, or subdomain 10370 names. 10371 Add makesendmail script in src to try to automate multi-architecture 10372 builds. I know, this is sub-optimal, but it is still 10373 helpful. 10374 Fix very obscure race condition that can cause a queue run to 10375 get a queue file for an already completed job. This 10376 problem has existed for years. Problem noted by the 10377 long suffering Allan Johannesen of WPI. 10378 Fix a problem that caused the raw sender name to be passed to 10379 udbsender instead of the canonified name -- this caused 10380 it to sometimes miss records that it should have found. 10381 Relax check of name on HELO packet so that a program using -bs 10382 that claims to be itself works properly. 10383 Restore rewriting of $: part of address through 2, R, 4 in 10384 buildaddr -- this requires passing a lot of flags to get 10385 it right. Unlike old versions, this ONLY rewrites 10386 recipient addresses, not sender addresses. 10387 Fix a bug that caused core dumps in config files that cannot 10388 resolve /file/name style addresses. Fix from Jonathan 10389 Kamens of OpenVision Technologies. 10390 Fix problem with fcntl locking that can cause error returns to 10391 be lost if the lock is lost; this required fully 10392 queueing everything, dropping the envelope (so errors 10393 would get returned), and then re-reading the queue from 10394 scratch. 10395 Fix a problem that caused aliases that redefine an otherwise 10396 true address to still send to the original address 10397 if and only if the alias failed in certain bizarre 10398 ways (e.g, if they pointed at a list:; syntax address). 10399 Problem pointed out by Jonathan Kamens. 10400 Remove support for frozen configuration files. They caused 10401 more trouble than it was worth. 10402 Fix problem that can cause error messages to get ignored when 10403 using both -odb and -t flags. Problem noted by Rob 10404 McNicholas at U.C. Berkeley. 10405 Include all "normal" variations on hostname in $=w. For example, 10406 if the host name is vangogh.cs.berkeley.edu, $=w will 10407 contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu. 10408 Add "restrictqrun" privacy flag -- without this, anyone can run 10409 the queue. 10410 Reset SmtpPhase global on initial connection creation so that 10411 messages don't come out with stale information. 10412 Pass an "ext" argument to lockfile so that error/log messages 10413 will properly reflect the true filename being locked. 10414 Put all [...] address forms into $=w -- this eliminates the need 10415 for MAXIPADDR in conf.h. Suggested by John Gardiner 10416 Myers of CMU. 10417 Fix a bug that can cause qf files to be left around even after 10418 an SMTP RSET command. Problem and fix from Michael 10419 Corrigan. 10420 Don't send a PostmasterCopy to errors when the Precedence: is 10421 negative. Error reports still go to the envelope 10422 sender address. 10423 Add LA_SHORT for load averages. 10424 Lock sendmail.st file when posting statistics. 10425 Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to 10426 set the size of the TCP send and receive buffers; if you 10427 run over a slow slip line you may need to set these down 10428 (although it would be better to fix the SLIP implementation 10429 so that it's not necessary to recompile every program 10430 that does bulk data transfer). 10431 Allow null defaults on $( ... $) lookups. Problem reported by 10432 Amir Plivatsky. 10433 Diagnose crufty S and V config lines. This resulted from an 10434 observation that some people were using the SITE macro 10435 without the SITECONFIG macro first, which was causing 10436 bogus config files that were not caught. 10437 Fix makemap -f flag to turn off case folding (it was turning it 10438 on instead). THIS IS A USER VISIBLE CHANGE!!! 10439 Fix a problem that caused multiple error messages to be sent if 10440 you used "sendmail -t -oem -odb", your system uses fcntl 10441 locking, and one of the recipient addresses is unknown. 10442 Reset uid earlier in include() so that recursive .forwards or 10443 :include:s don't use the wrong uid. 10444 If file descriptor 0, 1, or 2 was closed when sendmail was 10445 called, the code to recover the descriptor was broken. 10446 This sometimes (only sometimes) caused problems with the 10447 alias file. Fix from Motonori Nakamura. 10448 Fix a problem that caused aliaswait to go into infinite recursion 10449 if the @:@ metasymbol wasn't found in the alias file. 10450 Improve error message on newaliases if database files cannot be 10451 opened or if running with no database format defined. 10452 Do a better estimation of the size of error messages when NoReturn 10453 is set. Problem noted by P{r (Pell) Emanuelsson. 10454 Fix a problem causing the "c" option (don't connect to expensive 10455 mailers) to be ignored in SMTP. Problem noted and the 10456 solution suggested by Robert Elz of The University of 10457 Melbourne. 10458 Improve connection caching algorithm by passing "[host]" to 10459 hostsignature, which strips the square brackets and 10460 returns the real name. This allows mailertable entries 10461 to match regular entries. 10462 Re-enable Return-Receipt-To: -- people seem to want this stupid 10463 feature, even if it doesn't work right. 10464 Catch and log attempts to try the "wiz" command in server SMTP. 10465 This also ups the log level from LOG_NOTICE to LOG_CRIT. 10466 Be more generous at assigning $z to the home directory -- do this 10467 for programs that are specified through a .forward file. 10468 Fix from Andrew Chang of Sun Microsystems. 10469 Always save a fatal error message in preference to a non-fatal 10470 error message so that the "subject" line of return 10471 messages is the best possible. 10472 CONFIG: reduce the number of quotes needed to quote configuration 10473 parameters with commas: two quotes should work now, e.g., 10474 define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local''). 10475 CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom 10476 connections (domain-ized UUCP). 10477 CONFIG: fix bug in default maps (-o must be before database file 10478 name). Pointed out by Christophe Wolfhugel. 10479 CONFIG: add FEATURE(nodns) to state that we are not relying on 10480 DNS. This would presumably be used in UUCP islands. 10481 CONFIG: add OSTYPE(nextstep) and OSTYPE(linux). 10482 CONFIG: log $u in Received: line. This is in technical violation 10483 of the standards, since it doesn't guarantee a domain 10484 on the address. 10485 CONFIG: don't assume "m" in local mailer flags -- this means that 10486 if you redefine LOCAL_MAILER_FLAGS you will have to include 10487 the "m" flag should you want it. Apparently some Solaris 2.2 10488 installations can't handle multiple local recipients. 10489 Problem noted by Josh Smith. 10490 CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults). 10491 CONFIG: change default version level from 4 to 5. 10492 CONFIG: add FEATURE(nullclient) to create a config file that 10493 forwards all mail to a hub without ever looking at the 10494 addresses in any detail. 10495 CONFIG: properly strip mailer: information off of relays when 10496 used to change .BITNET form into %-hack form. 10497 CONFIG: fix a problem that caused infinite loops if presented 10498 with an address such as "!foo". 10499 CONFIG: check for self literal (e.g., [128.32.131.12]) even if 10500 the reverse "PTR" mapping is broken. There's a better 10501 way to do this, but the change is fairly major and I 10502 want to hold it for another release. Problem noted by 10503 Bret Marquis. 10504 105058.5/8.5 1993/07/23 10506 Serious bug: if you used a command line recipient that was unknown 10507 sendmail would not send a return message (it was treating 10508 everything as though it had an SMTP-style client that 10509 would do the return itself). Problem noted by Josh Smith. 10510 Change "trymx" option in getcanonname() to ignore all MX data, 10511 even during a T_ANY query. This actually didn't break 10512 anything, because the only time you called getcanonname 10513 with !trymx was if you already knew there were no MX 10514 records, but it is somewhat cleaner. From Motonori 10515 Nakamura. 10516 Don't call getcanonname from getmxrr if you already know there 10517 are no DNS records matching the name. 10518 Fix a problem causing error messages to always include "The 10519 original message was received ... from localhost". 10520 The correct original host information is now included. 10521 Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their 10522 version of "test" doesn't have the -x flag). Change it 10523 to use -f instead. From John Myers. 10524 CONFIG: 8.4 mistakenly set the default SMTP-style mailer to 10525 esmtp -- it should be smtp. 10526 CONFIG: send all relayed mail using confRELAY_MAILER (defaults 10527 to "relay" (a variant of "smtp") if MAILER(smtp) is used, 10528 else "suucp" if MAILER(uucp) is used, else "unknown"); 10529 this cleans up the configs somewhat. This fixes a serious 10530 problem that caused route-addrs to get mistaken as relays, 10531 pointed out by John Myers. WARNING: this also causes 10532 the default on SMART_HOST to change from "suucp" to 10533 "relay" if you have MAILER(smtp) specified. 10534 105358.4/8.4 1993/07/22 10536 Add option `w'. If you receive a message that comes to you because 10537 you are the best (lowest preference) target of an MX, and 10538 you haven't explicitly recognized the source MX host in 10539 your .cf file, this option will cause you to try the target 10540 host directly (as if there were no MX for it at all). If 10541 `w' is not set, this case is a configuration error. 10542 Beware: if `w' is set, senders may get bogus errors like 10543 "message timed out" or "host unknown" for problems that 10544 are really configuration errors. This option is 10545 disrecommended, provided only for compatibility with 10546 UIUC sendmail. 10547 Fix a problem that caused the incoming socket to be left open 10548 when sendmail forks after the DATA command. This caused 10549 calling systems to wait in FIN_WAIT_2 state until the 10550 entire list was processed and the child closed -- a 10551 potentially prodigious amount of time. Problem noted 10552 by Neil Rickert. 10553 Fix problem (created in 6.64) that caused mail sent to multiple 10554 addresses, one of which was a bad address, to completely 10555 suppress the sending of the message. This changes 10556 handling of EF_FATALERRS somewhat, and adds an 10557 EF_GLOBALERRS flag. This also fixes a potential problem 10558 with duplicate error messages if there is a syntax error 10559 in the header of a message that isn't noticed until late 10560 in processing. Original problem pointed out by Josh Smith 10561 of Harvey Mudd College. This release includes quite a bit 10562 of dickering with error handling (see below). 10563 Back out SMTP transaction if MAIL gets nested 501 error. This 10564 will only hurt already-broken software and should help 10565 humans. 10566 Fix a problem that broke aliases when neither NDBM nor NEWDB were 10567 compiled in. It would never read the alias file. 10568 Repair unbalanced `)' and `>' (the "open" versions are already 10569 repaired). 10570 Logging of "done" in dropenvelope() was incorrect: it would 10571 log this even when the queue file still existed. Change 10572 this to only log "done" (at log level 11) when the 10573 queue file is actually removed. From John Myers. 10574 Log "lost connection" in server SMTP at log level 20 if there 10575 is no pending transaction. Some senders just close the 10576 connection rather than sending QUIT. 10577 Fix a bug causing getmxrr to add a dot to the end of unqualified 10578 domains that do not have MX records -- this would cause 10579 the subsequent host name lookup to fail. The problem 10580 only occurred if you had FEATURE(nocanonify) set. 10581 Problem noted by Rick McCarty of Texas Instruments. 10582 Fix invocation of setvbuf when passed a -X flag -- I had 10583 unwittingly used an ANSI C extension, and this caused 10584 core dumps on some machines. 10585 Diagnose self-destructive alias loops on RCPT as well as EXPN. 10586 Previously it just gave an empty send queue, which 10587 then gave either "Need RCPT (recipient)" at the DATA 10588 (confusing, since you had given an RCPT command which 10589 returned 250) or just dropped the email, depending on 10590 whether you were running VERBose mode. Now it usually 10591 diagnoses this case as "aliasing/forwarding loop broken". 10592 Unfortunately, it still doesn't adequately diagnose 10593 some true error conditions. 10594 Add internal concept of "warning messages" using 6xx codes. 10595 These are not reported only to Postmaster. Unbalanced 10596 parens, brackets, and quotes are printed as 653 codes. 10597 They are always mapped to 5xx codes before use in SMTP. 10598 Clean up error messages to tell both the actual address that 10599 failed and the alias they arose from. This makes it 10600 somewhat easier to diagnose problems. Difficulty noted 10601 by Motonori Nakamura. 10602 Fix a problem that inappropriately added a ctladdr to addresses 10603 that shouldn't have had one during a queue run. This 10604 caused error messages to be handled differently during 10605 a queue run than a direct run. 10606 Don't print the qf name and line number if you get errors during 10607 the direct run of the queue from srvrsmtp -- this was 10608 just extra stuff for users to crawl through. 10609 Put command line flags on second line of pid file so you can 10610 auto-restart the daemon with all appropriate arguments. 10611 Use "kill `head -1 /etc/sendmail.pid`" to stop the 10612 daemon, and "eval `tail -1 /etc/sendmail.pid`" to 10613 restart it. 10614 Remove the ``setuid(getuid())'' in main -- this caused the 10615 IDENT daemon to screw up. This required that I change 10616 HASSETEUID to HASSETREUID and complicate the mode 10617 changing somewhat because both Ultrix and SunOS seem 10618 to have a bug causing seteuid() to set the saved uid 10619 as well as the effective. The program test/t_setreuid.c 10620 will test to see if your implementation of setreuid(2) 10621 is appropriately functional. 10622 The FallBackMX (option V) handling failed to properly identify 10623 fallback to yourself -- most of the code was there, 10624 but it wasn't being enabled. Problem noted by Murray 10625 Kucherawy of the University of Waterloo. 10626 Change :include: open timeout from ETIMEDOUT to an internal 10627 code EOPENTIMEOUT; this avoids adding "during SmtpPhase 10628 with CurHostName" in error messages, which can be 10629 confusing. Reported by Jonathan Kamens of OpenVision 10630 Technologies. 10631 Back out setpgrp (setpgid on POSIX systems) call to reset the 10632 process group id. The original fix was to get around 10633 some problems with recalcitrant MUAs, but it breaks 10634 any call from a shell that creates a process group id 10635 different from the process id. I could try to fix 10636 this by diddling the tty owner (using tcsetpgrp or 10637 equivalent) but this is too likely to break other 10638 things. 10639 Portability changes: 10640 Support -M as equivalent to -oM on Ultrix -- apparently 10641 DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs 10642 instead of using standard flags. Oh joy. This 10643 behavior reported by Jon Giltner of University 10644 of Colorado. 10645 SGI IRIX -- this includes several changes that should 10646 help other strict ANSI compilers. 10647 SCO Unix -- from Murray Kucherawy of HookUp Communication 10648 Corporation. 10649 Solaris running the Sun C compiler (which despite the 10650 documentation apparently doesn't define 10651 __STDC__ by default). 10652 ConvexOS from Eric Schnoebelen of Convex. 10653 Sony NEWS workstations and Omron LUNA workstations from 10654 Motonori Nakamura. 10655 CONFIG: add confTRY_NULL_MX_LIST to set option `w'. 10656 CONFIG: delete `C' and `e' from default SMTP mailers flags; 10657 several people have made a good argument that this 10658 creates more problems than it solves (although this 10659 may prove painful in the short run). 10660 CONFIG: generalize all the relays to accept a "mailer:host" 10661 format. 10662 CONFIG: move local processing in ruleset 0 into a new ruleset 10663 98 (8 on old sendmail). Domain literal [a.b.c.d] 10664 addresses are also passed through this ruleset. 10665 CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined, 10666 internet-style addresses would "fall off the end" of 10667 ruleset zero and be interpreted as local -- however, 10668 the angle brackets confused the recursive call. 10669 These are now diagnosed as "Unrecognized host name". 10670 CONFIG: USENET rules weren't included in S0 because of a mistaken 10671 ifdef(`_MAILER_USENET_') instead of 10672 ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik 10673 of SINTEF RUNIT, Oslo. 10674 CONFIG: move up LOCAL_RULE_0 processing so that it happens very 10675 early in ruleset 0; this allows .mc authors to bypass 10676 things like the "short circuit" code for local addresses. 10677 Prompted by a comment by Bill Wisner of The Well. 10678 CONFIG: add confSMTP_MAILER to define the mailer used (smtp or 10679 esmtp) to send SMTP mail. This allows you to default 10680 to esmtp but use a mailertable or other override to 10681 deal with broken servers. This logic was pointed out 10682 to me by Bill Wisner. Ditto for confLOCAL_MAILER. 10683 Changes to cf/sh/makeinfo.sh to make it portable to SVR4 10684 environments. Ugly as sin. 10685 106868.3/8.3 1993/07/13 10687 Fix setuid problems introduced in 8.2 that caused messages 10688 like "Cannot create qfXXXXXX: Invalid argument" 10689 or "Cannot reopen dfXXXXXX: Permission denied". This 10690 involved a new compile flag "HASSETEUID" that takes 10691 the place of the old _POSIX_SAVED_IDS -- it turns out 10692 that the POSIX interface is broken enough to break 10693 some systems badly. This includes some fixes for 10694 HP-UX. Also fixes problems where the real uid is 10695 not reset properly on startup (from Neil Rickert). 10696 Fix a problem that caused timed out messages to not report the 10697 addresses that timed out. Error messages are also more 10698 "user friendly". 10699 Drop required bandwidth on connections from 64 bytes/sec to 10700 16 bytes/sec. 10701 Further Solaris portability changes -- doesn't require the BSD 10702 compatibility library. This also adds a new 10703 "HASGETDTABLESIZE" compile flag which can be used if 10704 you want to use getdtablesize(2) instead of sysconf(2). 10705 These are loosely based on changes from David Meyer at 10706 University of Oregon. This now seems to work, at least 10707 for quick test cases. 10708 Fix a problem that can cause duplicate error messages to be 10709 sent if you are in SMTP, you send to multiple addresses, 10710 and at least one of those addresses is good and points 10711 to an account that has a .forward file (whew!). 10712 Fix a problem causing messages to be discarded if checkcompat() 10713 returned EX_TEMPFAIL (because it didn't properly mark 10714 the "to" address). Problem noted by John Myers. 10715 Fix dfopen to return NULL if the open failed; I was depending 10716 on fdopen(-1) returning NULL, which isn't the case. This 10717 isn't serious, but does result in weird error diagnoses. 10718 From Michael Corrigan. 10719 CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of 10720 messages sent through UUCP-family mailers. Suggested 10721 by Bill Wisner of The Well. 10722 CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified, 10723 include a "uucp-dom" mailer that uses domain-style 10724 addressing. Suggested by Bill Wisner. 10725 CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match 10726 LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by 10727 Christophe Wolfhugel. 10728 CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel. 10729 107308.2/8.2 1993/07/11 10731 Don't drop out on config file parse errors in -bt mode. 10732 On older configuration files, assume option "l" (use Errors-To 10733 header) for back compatibility. NOTE: this DOES NOT 10734 imply an endorsement of the Errors-To: header in any way. 10735 Accept -x flag on AIX-3 as well as OSF/1. Why, why, why??? 10736 Don't log errors on EHLO -- it isn't a "real" error for an old 10737 SMTP server to give an error on this command, and 10738 logging it in the transcript can be confusing. Fix 10739 from Bill Wisner. 10740 IRIX compatibility changes provided by Dan Rich 10741 <drich@sandman.lerc.nasa.gov>. 10742 Solaris 2 compatibility changes. Provided by Bob Cunningham 10743 <bob@kahala.soest.hawaii.edu>, John Oleynick 10744 <juo@klinzhai.rutgers.edu> 10745 Debugging: -d17 was overloaded (hostsignature and usersmtp.c); 10746 move usersmtp (smtpinit and smtpmailfrom) to -d18 to 10747 match the other flags in that file. 10748 Flush transcript before fork in mailfile(). From Eric Wassenaar. 10749 Save h_errno in mci struct and improve error message display. 10750 Changes from Eric Wassenaar. 10751 Open /dev/null for the transcript if the create of the xf file 10752 failed; this avoids at least one possible null pointer 10753 reference in very weird cases. From Eric Wassenaar. 10754 Clean up statistics gathering; it was over-reporting because of 10755 forks. From Eric Wassenaar. 10756 Fix problem that causes old Return-Path: line to override new 10757 Return-Path: line (conf.c needs H_FORCE to avoid 10758 re-using old value). From Motonori Nakamura. 10759 Fix broken -m flag in K definition -- even if -m (match only) 10760 was specified, it would still replace the key with the 10761 value. Noted by Rick McCarty of Texas Instruments. 10762 If the name server timed out over several days, no "timed out" 10763 message would ever be sent back. The timeout code 10764 has been moved from markfailure() to dropenvelope() 10765 so that all such failures should be diagnosed. Pointed 10766 out by Christophe Wolfhugel and others. 10767 Relax safefile() constraints: directories in an include or 10768 forward path must be readable by self if the controlling 10769 user owns the entry, readable by all otherwise (e.g., 10770 when reading your .forward file, you have to own and 10771 have X permission in it; everyone needs X permission in 10772 the root and directories leading up to your home); 10773 include files must be readable by anyone, but need not 10774 be owned by you. 10775 If _POSIX_SAVED_IDS is defined, setuid to the owner before 10776 reading a .forward file; this gets around some problems 10777 on NFS mounts if root permission is not exported and 10778 the user's home directory isn't x'able. 10779 Additional NeXT portability enhancements from Axel Zinser. 10780 Additional HP-UX portability enhancements from Brian Bullen. 10781 Add a timeout around SMTP message writes; this assumes you can 10782 get throughput of at least 64 bytes/second. Note that 10783 this does not impact the "datafinal" default, which 10784 is separate; this is just intended to work around 10785 network clogs that will occur before the final dot 10786 is sent. From Eric Wassenaar. 10787 Change map code to set the "include null" flag adaptively -- 10788 it initially tries both, but if it finds anything 10789 matching without a null it never tries again with a 10790 null and vice versa. If -N is specified, it never 10791 tries without the null and creates new maps with a 10792 null byte. If -O is specified, it never tries with 10793 the null (for efficiency). If -N and -O are specified, 10794 you get -NO (get it?) lookup at all, so this would 10795 be a bad idea. If you don't specify either -N or -O, 10796 it adapts. 10797 Fix recognition of "same from address" so that MH submissions 10798 will insert the appropriate full name information; 10799 this used to work and got broken somewhere along the 10800 way. 10801 Some changes to eliminate some unnecessary SYSERRs in the 10802 log. For example, if you lost a connection, don't 10803 bother reporting that fact on the connection you lost. 10804 Add some "extended debugging" flags to try to track down 10805 why we get occasional problems with file descriptor 10806 one being closed when execing a mailer; it seems to 10807 only happen when there has been another error in the 10808 same transaction. This requires XDEBUG, defined 10809 by default in conf.h. 10810 Add "-X filename" command line flag, which logs both sides of 10811 all SMTP transactions. This is intended ONLY for 10812 debugging bad implementations of other mailers; start 10813 it up, send a message from a mailer that is failing, 10814 and then kill it off and examine the indicated log. 10815 This output is not intended to be particularly human 10816 readable. This also adds the HASSETVBUF compile 10817 flag, defaulted on if your compiler defines __STDC__. 10818 CONFIG: change SMART_HOST to override an SMTP mailer. If you 10819 have a local net that should get direct connects, you 10820 will need to use LOCAL_NET_CONFIG to catch these hosts. 10821 See cf/README for an example. 10822 CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle 10823 sites that don't use the -d flag. 10824 CONFIG: hide recipient addresses as well as sender addresses 10825 behind $M if FEATURE(allmasquerade) is specified; this 10826 has been requested by several people, but can break 10827 local aliases. For example, if you mail to "localalias" 10828 this will be rewritten as "localalias@masqueradehost"; 10829 although initial delivery will work, replies will be 10830 broken. Use it sparingly. 10831 CONFIG: add FEATURE(domaintable). This maps unqualified domains 10832 to qualified domains in headers. I believe this is 10833 largely equivalent to the IDA feature of the same name. 10834 CONFIG: use $U as UUCP name instead of $k. This permits you 10835 to override the "system name" as your UUCP name -- 10836 in particular, to use domain-ized UUCP names. From 10837 Bill Wisner of The Well. 10838 CONFIG: create new mailer "esmtp" that always tries EHLO 10839 first. This is currently unused in the config files, 10840 but could be used in a mailertable entry. 10841 108428.1C/8.1B 1993/06/27 10843 Serious security bug fix: it was possible to read any file on 10844 the system, regardless of ownership and permissions. 10845 If a subroutine returns a fully qualified address, return it 10846 immediately instead of feeding it back into rewriting. 10847 This fixes a problem with mailertable lookups. 10848 CONFIG: fix some M4 frotz (concat => CONCAT) 10849 108508.1B/8.1A 1993/06/12 10851 Serious bug fix: pattern matching backup algorithm stepped by 10852 two tokens in classes instead of one. Found by Claus 10853 Assmann at University of Kiel, Germany. 10854 108558.1A/8.1A 1993/06/08 10856 Another mailertable fix.... 10857 108588.1/8.1 1993/06/07 10859 4.4BSD freeze. No semantic changes. 10860