[Dovecot] CATENATE mis-reads literal after bad URL
Dovecot-2.2.1 plus Timo's recent CATENATE and URLAUTH fixes mishandles literals after bad URLs. (As before remember that the "foobar" text below is really "foobarCRLF" hence the length of 8. Also, last time some MTA discarded an important single leading space character in the snippet I quoted so this time I'm prefixing all the lines to avoid that. In case it's lost again, there's a space before the word "url" below.)
| b append inbox catenate (text {8} | + OK | foobar | url /a-bad-url text {8} | b NO [BADURL /a-bad-url] Invalid messagepart IMAP URL. | c noop | d noop | d OK NOOP completed. | e logout | * BYE Logging out | e OK Logout completed.
Note that the command with tag "c" is lost. I think it shouldn't be, because the NO was reported to the client without sending a continuation (+ OK) so the client knows not to send the literal. Plus it appears only one line is discarded regardless of the size of the literal.
On 3.5.2013, at 4.00, Mike Abbott <michael.abbott@apple.com> wrote:
Dovecot-2.2.1 plus Timo's recent CATENATE and URLAUTH fixes mishandles literals after bad URLs.
That input_skip_line is highly annoying in the APPEND code. Elsewhere it kind of makes sense, but in APPEND it's difficult to keep track of when it should be set or shouldn't be set. I fixed the most obvious places in hg, and also fixes several other bugs I noticed in parsing invalid APPEND parameters.
participants (2)
-
Mike Abbott
-
Timo Sirainen