[Dovecot] CATENATE allows zero parts
Mike Abbott
michael.abbott at apple.com
Mon Apr 29 21:37:23 EEST 2013
I'm pleased to see that dovecot-2.2 includes support for RFCs 4467 and 4469 (URLAUTH and CATENATE). I have begun testing these features (in dovecot-2.2.1) and comparing their functionality against Apple's implementation. So far I have discovered a few inconsistencies. I will report each of these, and any more that I may find, in separate threads.
The first issue is that using CATENATE with no message parts works but, IMO, shouldn't:
a2 append inbox catenate ()
a2 OK [APPENDUID 1366726248 9] Append completed.
For comparison this is how Apple's enhanced dovecot in OS X Server handles this request:
a2 append inbox catenate ()
a2 BAD Invalid arguments.
According to RFC 4469 section 3 CATENATE requires "one or more message parts." This is formalized in section 5:
append-data =/ "CATENATE" SP "(" cat-part *(SP cat-part) ")"
and in RFC 3501 section 9 which states that "[ABNF] rules MUST be followed strictly."
I believe that permitting zero cat-parts is contrary to the RFC, although I can understand permitting it under the general doctrine of "servers should be liberal in what they accept, and clients strict in what they send."
Is accepting zero cat-parts an intentional exception to the RFC or an oversight?
More information about the dovecot
mailing list