if strings.ToUpper(command) != strings.ToUpper(conn.line[:len(command)]) {
return "", ReplyLine{500, "unrecognized command"}
}
- return conn.line[len(command):], ReplyOK
+ params := conn.line[len(command):]
+ idx := strings.Index(params, ">")
+ if idx == -1 {
+ return "", ReplyBadSyntax
+ }
+ return params[:idx+1], ReplyOK
}
func (conn *connection) doEHLO() {
runTableTest(t, conn, []requestResponse{
{"EHLO test", 0, func(t testing.TB, conn *textproto.Conn) { conn.ReadResponse(250) }},
{"MAIL FROM:<sender>", 501, nil},
- {"MAIL FROM:<sender@foo.com>", 250, nil},
+ {"MAIL FROM:<sender@foo.com> SIZE=2163", 250, nil},
{"RCPT TO:<banned.net>", 501, nil},
{"QUIT", 221, nil},
})