xref: /freebsd/contrib/sendmail/KNOWNBUGS (revision c2aa98e247e56d5266d789dfc9b90b524b0019fe)
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