melib/imap: accept invalid "+" CRLF cont req

Some servers erroneously send a "+" CRLF sequence instead of "+" SP
CRLF.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
pull/425/head
Manos Pitsidianakis 4 months ago
parent a9e9d952d5
commit 1cce8c1162
No known key found for this signature in database
GPG Key ID: 7729C7707F7E09D0

@ -518,7 +518,11 @@ impl ImapStream {
}
if Some(pos + b"\r\n".len()) == ret.get(last_line_idx..).map(|r| r.len()) {
if let Some(seq) = termination_string {
if ret[last_line_idx..].starts_with(seq) {
// Some servers erroneously send "+" CRLF instead of "+" SP CRLF,
// see https://github.com/modern-email/defects/issues/7
if ret[last_line_idx..].starts_with(seq)
|| (seq == b"+ " && ret[last_line_idx..].starts_with(b"+"))
{
if !keep_termination_string {
ret.truncate(last_line_idx);
}

Loading…
Cancel
Save