summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Pennock <pdp@exim.org>2011-08-27 11:58:44 -0700
committerPhil Pennock <pdp@exim.org>2011-08-27 12:09:10 -0700
commite2ca70829c8ec70da1fcc0aecbdf50cc3f28527a (patch)
tree140adaea434e92f4493c8183e966333787a2303d
parent52ba4661114d0a96c15f5f43bcb97ce89061f1b6 (diff)
Raise smtp_cmd_buffer_size to 16384.
Needed to interoperate with SASL commands containing a large initial-response; in practice, GSSAPI with authorisation data, such as in a Windows domain. Patch from Paul Fisher. fixes bug 879
-rw-r--r--doc/doc-txt/ChangeLog3
-rw-r--r--src/src/smtp_in.c9
2 files changed, 10 insertions, 2 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 2db30fed7..0441c326e 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -88,6 +88,9 @@ TF/06 Removed a few PCRE remnants.
TF/07 Automatically extract Exim's version number from tags in the git
repository when doing development or release builds.
+PP/02 Raise smtp_cmd_buffer_size to 16kB. Patch from Paul Fisher.
+ Bugzilla 879.
+
Exim version 4.76
-----------------
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c
index f1c7aec34..7ca56e255 100644
--- a/src/src/smtp_in.c
+++ b/src/src/smtp_in.c
@@ -36,9 +36,14 @@ uschar *tcp_wrappers_name;
/* Size of buffer for reading SMTP commands. We used to use 512, as defined
by RFC 821. However, RFC 1869 specifies that this must be increased for SMTP
commands that accept arguments, and this in particular applies to AUTH, where
-the data can be quite long. */
+the data can be quite long. More recently this value was 2048 in Exim;
+however, RFC 4954 (circa 2007) recommends 12288 bytes to handle AUTH. Clients
+such as Thunderbird will send an AUTH with an initial-response for GSSAPI.
+The maximum size of a Kerberos ticket under Windows 2003 is 12000 bytes, and
+we need room to handle large base64-encoded AUTHs for GSSAPI.
+*/
-#define smtp_cmd_buffer_size 2048
+#define smtp_cmd_buffer_size 16384
/* Size of buffer for reading SMTP incoming packets */