1c2aa98e2SPeter Wemm 2c2aa98e2SPeter Wemm 3c2aa98e2SPeter Wemm K N O W N B U G S I N S E N D M A I L 4c2aa98e2SPeter Wemm (for 8.9.0) 5c2aa98e2SPeter Wemm 6c2aa98e2SPeter Wemm 7c2aa98e2SPeter WemmThe following are bugs or deficiencies in sendmail that I am aware of 8c2aa98e2SPeter Wemmbut which have not been fixed in the current release. You probably 9c2aa98e2SPeter Wemmwant to get the most up to date version of this from ftp.sendmail.org 10c2aa98e2SPeter Wemmin /pub/sendmail/KNOWNBUGS. For descriptions of bugs that have been 11c2aa98e2SPeter Wemmfixed, see the file RELEASE_NOTES (in the root directory of the sendmail 12c2aa98e2SPeter Wemmdistribution). 13c2aa98e2SPeter Wemm 14c2aa98e2SPeter WemmThis list is not guaranteed to be complete. 15c2aa98e2SPeter Wemm 16c2aa98e2SPeter Wemm 17c2aa98e2SPeter Wemm* Null bytes are not handled properly in headers. 18c2aa98e2SPeter Wemm 19c2aa98e2SPeter Wemm Sendmail should handle full binary data. As it stands, it handles 20c2aa98e2SPeter Wemm all values in the body, but only 0x01-0x80 and 0xA0-0xFF in 21c2aa98e2SPeter Wemm the header. Notably missing is 0x00, which would require a major 22c2aa98e2SPeter Wemm restructuring of the code -- for example, almost no C library support 23c2aa98e2SPeter Wemm could be used to handle strings. 24c2aa98e2SPeter Wemm 25c2aa98e2SPeter Wemm* Duplicate error messages. 26c2aa98e2SPeter Wemm 27c2aa98e2SPeter Wemm Sometimes identical, duplicate error messages can be generated. As 28c2aa98e2SPeter Wemm near as I can tell, this is rare and relatively innocuous. 29c2aa98e2SPeter Wemm 30c2aa98e2SPeter Wemm* $c (hop count) macro improperly set. 31c2aa98e2SPeter Wemm 32c2aa98e2SPeter Wemm The $c macro is supposed to contain the current hop count, for use 33c2aa98e2SPeter Wemm when calling a mailer. This macro is initialized too early, and 34c2aa98e2SPeter Wemm is always zero (or the value of the -c command line flag, if any). 35c2aa98e2SPeter Wemm This macro will probably be removed entirely in a future release; 36c2aa98e2SPeter Wemm I don't believe there are any mailers left that require it. 37c2aa98e2SPeter Wemm 38c2aa98e2SPeter Wemm* If you EXPN a list or user that has a program mailer, the output of 39c2aa98e2SPeter Wemm EXPN will include ``@local.host.name''. You can't actually mail to 40c2aa98e2SPeter Wemm this address. It's not clear what the right behavior is in this 41c2aa98e2SPeter Wemm circumstance. 42c2aa98e2SPeter Wemm 43c2aa98e2SPeter Wemm* \231 considered harmful. 44c2aa98e2SPeter Wemm 45c2aa98e2SPeter Wemm Header addresses that have the \231 character (and possibly others 46c2aa98e2SPeter Wemm in the range \201 - \237) behave in odd and usually unexpected ways. 47c2aa98e2SPeter Wemm 48c2aa98e2SPeter Wemm* accept() problem on SVR4. 49c2aa98e2SPeter Wemm 50c2aa98e2SPeter Wemm Apparently, the sendmail daemon loop (doing accept()s on the network) 51c2aa98e2SPeter Wemm can get into a weird state on SVR4; it starts logging ``SYSERR: 52c2aa98e2SPeter Wemm getrequests: accept: Protocol Error''. The workaround is to kill 53c2aa98e2SPeter Wemm and restart the sendmail daemon. We don't have an SVR4 system at 54c2aa98e2SPeter Wemm Berkeley that carries more than token mail load, so I can't validate 55c2aa98e2SPeter Wemm this. It is likely to be a glitch in the sockets emulation, since 56c2aa98e2SPeter Wemm "Protocol Error" is not possible error code with Berkeley TCP/IP. 57c2aa98e2SPeter Wemm 58c2aa98e2SPeter Wemm I've also had someone report the message ``sendmail: accept: 59c2aa98e2SPeter Wemm SIOCGPGRP failed errno 22'' on an SVR4 system. This message is 60c2aa98e2SPeter Wemm not in the sendmail source code, so I assume it is also a bug 61c2aa98e2SPeter Wemm in the sockets emulation. (Errno 22 is EINVAL "Invalid Argument" 62c2aa98e2SPeter Wemm on all the systems I have available, including Solaris 2.x.) 63c2aa98e2SPeter Wemm Apparently, this problem is due to linking -lc before -lsocket; 64c2aa98e2SPeter Wemm if you are having this problem, check your Makefile. 65c2aa98e2SPeter Wemm 66c2aa98e2SPeter Wemm* accept() problem on Linux. 67c2aa98e2SPeter Wemm 68c2aa98e2SPeter Wemm Apparently, the accept() in sendmail daemon loop can return ETIMEDOUT 69c2aa98e2SPeter Wemm and cause sendmail to sleep for 5 seconds during which time no new 70c2aa98e2SPeter Wemm connections will be accepted. An error is reported to syslog: 71c2aa98e2SPeter Wemm 72c2aa98e2SPeter Wemm Jun 9 17:14:12 hostname sendmail[207]: NOQUEUE: SYSERR(root): 73c2aa98e2SPeter Wemm getrequests: accept: Connection timed out 74c2aa98e2SPeter Wemm 75c2aa98e2SPeter Wemm "Connection timed out" is not documented as a valid return from 76c2aa98e2SPeter Wemm accept(2) and this was believed to be a bug in the Linux kernel. 77c2aa98e2SPeter Wemm Later information from the Linux kernel group states that Linux 78c2aa98e2SPeter Wemm 2.0 kernels follow RFC1122 while sendmail follows the original BSD 79c2aa98e2SPeter Wemm (now POSIX 1003.1g draft) specification. The 2.1.X and later kernels 80c2aa98e2SPeter Wemm will follow the POSIX draft. 81c2aa98e2SPeter Wemm 82c2aa98e2SPeter Wemm* Excessive mailing list nesting can run out of file descriptors. 83c2aa98e2SPeter Wemm 84c2aa98e2SPeter Wemm If you have a mailing list that includes lots of other mailing 85c2aa98e2SPeter Wemm lists, each of which has a separate owner, you can run out of 86c2aa98e2SPeter Wemm file descriptors. Each mailing list with a separate owner uses 87c2aa98e2SPeter Wemm one open file descriptor (prior to 8.6.6 it was three open 88c2aa98e2SPeter Wemm file descriptors per list). This is particularly egregious if 89c2aa98e2SPeter Wemm you have your connection cache set to be large. 90c2aa98e2SPeter Wemm 91c2aa98e2SPeter Wemm* Connection caching breaks if you pass the port number as an argument. 92c2aa98e2SPeter Wemm 93c2aa98e2SPeter Wemm If you have a definition such as: 94c2aa98e2SPeter Wemm 95c2aa98e2SPeter Wemm Mport, P=[IPC], F=kmDFMuX, S=11/31, R=21, 96c2aa98e2SPeter Wemm M=2100000, T=DNS/RFC822/SMTP, 97c2aa98e2SPeter Wemm A=IPC [127.0.0.1] $h 98c2aa98e2SPeter Wemm 99c2aa98e2SPeter Wemm (i.e., where $h is the port number instead of the host name) the 100c2aa98e2SPeter Wemm connection caching code will break because it won't notice that 101c2aa98e2SPeter Wemm two messages addressed to different ports should use different 102c2aa98e2SPeter Wemm connections. 103c2aa98e2SPeter Wemm 104c2aa98e2SPeter Wemm* ESMTP SIZE underestimates the size of a message 105c2aa98e2SPeter Wemm 106c2aa98e2SPeter Wemm Sendmail makes no allowance for headers that it adds, nor does it 107c2aa98e2SPeter Wemm account for the SMTP on-the-wire \r\n expansion. It probably doesn't 108c2aa98e2SPeter Wemm allow for 8->7 bit MIME conversions either. 109c2aa98e2SPeter Wemm 110c2aa98e2SPeter Wemm* Paths to programs being executed and the mode of program files are 111c2aa98e2SPeter Wemm not checked. Essentially, the RunProgramInUnsafeDirPath and 112c2aa98e2SPeter Wemm RunWritableProgram bits in the DontBlameSendmail option are always 113c2aa98e2SPeter Wemm set. This is not a problem if your system is well managed (that is, 114c2aa98e2SPeter Wemm if binaries and system directories are mode 755 instead of something 115c2aa98e2SPeter Wemm foolish like 777). 116c2aa98e2SPeter Wemm 117c2aa98e2SPeter Wemm* 8-bit data in GECOS field 118c2aa98e2SPeter Wemm 119c2aa98e2SPeter Wemm If the GECOS (personal name) information in the passwd file contains 120c2aa98e2SPeter Wemm 8-bit characters, those characters can be included in the message 121c2aa98e2SPeter Wemm header, which can cause problems when sending SMTP to hosts that 122c2aa98e2SPeter Wemm only accept 7-bit characters. 123c2aa98e2SPeter Wemm 124c2aa98e2SPeter Wemm* 8->7 bit MIME conversion 125c2aa98e2SPeter Wemm 126c2aa98e2SPeter Wemm When sendmail is doing 8->7 bit MIME conversions, and the message 127c2aa98e2SPeter Wemm contains certain MIME body types that cannot be converted to 7-bit, 128c2aa98e2SPeter Wemm sendmail will strip the message to 7-bit. 129c2aa98e2SPeter Wemm 130c2aa98e2SPeter Wemm* 7->8 bit MIME conversion 131c2aa98e2SPeter Wemm 132c2aa98e2SPeter Wemm If a message that is encoded as 7-bit MIME is converted to 8-bit and 133c2aa98e2SPeter Wemm that message when decoded is illegal (e.g., because of long lines or 134c2aa98e2SPeter Wemm illegal characters), sendmail can produce an illegal message. 135c2aa98e2SPeter Wemm 136c2aa98e2SPeter Wemm* MIME encoded full name phrases in the From: header 137c2aa98e2SPeter Wemm 138c2aa98e2SPeter Wemm If a full name phrase includes characters from MustQuoteChars, sendmail 139c2aa98e2SPeter Wemm will quote the entire full name phrase. If MustQuoteChars includes 140c2aa98e2SPeter Wemm characters which are not special characters according to STD 11 (RFC 141c2aa98e2SPeter Wemm 822), this quotation can interfere with MIME encoded full name phrases. 142c2aa98e2SPeter Wemm By default, sendmail includes the single quote character (') in 143c2aa98e2SPeter Wemm MustQuoteChars even though it is not listed as a special character in 144c2aa98e2SPeter Wemm STD 11. 145c2aa98e2SPeter Wemm 146c2aa98e2SPeter Wemm 147c2aa98e2SPeter Wemm(Version 8.32, last updated 6/30/98) 148