that require one. Thus, EHLORHUBARB was interpreted as a valid command.
This bug exists in every version of Exim that I still have, right back
to 0.12.
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.382 2006/07/27 10:36:34 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.383 2006/07/27 11:29:32 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
tests for valid domains and recipients precede the DNS black list and CSA
tests, on the grounds that those ones are more expensive.
+PH/25 Exim was not testing for a space following SMTP commands such as EHLO
+ that require one. Thus, EHLORHUBARB was interpreted as a valid command.
+ This bug exists in every version of Exim that I still have, right back to
+ 0.12.
+
Exim version 4.62
-----------------
-/* $Cambridge: exim/src/src/smtp_in.c,v 1.40 2006/07/27 10:13:52 ph10 Exp $ */
+/* $Cambridge: exim/src/src/smtp_in.c,v 1.41 2006/07/27 11:29:32 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
for (p = cmd_list; p < cmd_list_end; p++)
{
- if (strncmpic(smtp_cmd_buffer, US p->name, p->len) == 0)
+ if (strncmpic(smtp_cmd_buffer, US p->name, p->len) == 0 &&
+ (smtp_cmd_buffer[p->len-1] == ':' || /* "mail from:" or "rcpt to:" */
+ smtp_cmd_buffer[p->len] == 0 ||
+ smtp_cmd_buffer[p->len] == ' '))
{
if (smtp_inptr < smtp_inend && /* Outstanding input */
p->cmd < sync_cmd_limit && /* Command should sync */
mail from:<root>
rcpt to:<xx@reLAY.ONE.ex>
rcpt to:<yy@relay.two.ex>
+rset
+helorhubarb
+mailfrom:<>
+rsettling
quit
****
2
250 OK\r
250 Accepted\r
550 relay not permitted\r
+250 Reset OK\r
+500 unrecognized command\r
+500 unrecognized command\r
+500 unrecognized command\r
221 myhost.test.ex closing connection\r
abcd@test.ex
router = select, transport = dummy