Double Carriage return breaks header ..

Patrik Henningsson lists-cyrus at tripnet.se
Tue May 31 04:12:10 EDT 2005


Greg A. Woods wrote:
> [ On Monday, May 30, 2005 at 22:32:37 (+0200), John Fawcett wrote: ]
> 
>>Subject: Re: Double Carriage return breaks header ..
>>
>>Greg A. Woods wrote:
>>
>>>Really your MTA should be correcting it long before it gets passed on.
>>
>>is there a basis for this?
> 
> 
> Well, maybe.  :-)
> 
> 
> 
>>>As has been noted, it's not valid SMTP content.
>>
>>is it correct for cyrus to interpret bare \r as an end of header line
>>rather than just reject the message?
> 
> 
> Well actually on deeper reading of RFC 2821 I think a bare <CR> should
> just be treated as a bare <CR> -- i.e. another ordinary character in the
> message content that should be preserved transparently.
> 
> This is indeed how Smail deals with bare <CR>, regardless of whether it
> appears prior to a <CRLF> pair or not.
> 
> However with both Cyrus v2.1.15 and v2.2.12 I find that in my
> configurations with Smail the bare <CR> before a <CRLF> is stripped by
> Cyrus (but preserved by Smail).
> 
> Here's the tail of the test message as delivered by mail.local to
> /var/mail/gwoods (note the <CRLF> pairs have, of course, been reduced to
> <LF> in order to conform to the Unix mailbox syntax, but the extra <CR>
> at the end of the "Subject:" header, and at the end of the line "crline"
> both remain):
> 
> # od -c /var/mail/gwoods | tail 
> 0002100    t   e   :       M   o   n   ,       3   0       M   a   y    
> 0002120    2   0   0   5       1   7   :   3   9   :   1   5       -   0
> 0002140    4   0   0       (   E   D   T   )  \n   F   r   o   m   :    
> 0002160    <   w   o   o   d   s   @   w   e   i   r   d   .   c   o   m
> 0002200    >  \n   T   o   :       g   w   o   o   d   s   @   m   a   i
> 0002220    l   .   a   c   i   .   o   n   .   c   a  \n   S   u   b   j
> 0002240    e   c   t   :       T   E   S   T  \r  \n   X   -   h   e   a
> 0002260    d   e   r   :       b   a   r  \n  \n   c   r   l   i   n   e
> 0002300   \r  \n   f   o   o  \n  \n  \n                                
> 0002310
> 
> 
> And here's the tail of the exact same test message as delivered through
> "deliver" to Cyrus:
> 
> # od -c 118. | tail             
> 0001140    M   a   y       2   0   0   5       1   7   :   3   9   :   3
> 0001160    3       -   0   4   0   0       (   E   D   T   )  \r  \n   F
> 0001200    r   o   m   :       <   w   o   o   d   s   @   w   e   i   r
> 0001220    d   .   c   o   m   >  \r  \n   T   o   :       g   w   o   o
> 0001240    d   s   @   m   a   i   l   .   a   c   i   .   o   n   .   c
> 0001260    a  \r  \n   S   u   b   j   e   c   t   :       T   E   S   T
> 0001300   \r  \n   X   -   h   e   a   d   e   r   :       b   a   r  \r
> 0001320   \n  \r  \n   c   r   l   i   n   e  \r  \n   f   o   o  \r  \n
> 0001340   \r  \n  \r  \n                                                
> 0001344
> 
> 
> Note though that in my current configuration Smail feeds the exact same
> data to both "deliver" and "mail.local".  I.e. the <CRLF> pairs have
> been reduced to just <LF> before "deliver" sees them.
> 
> So, in these cases I can only assume that I cannot reproduce the problem
> because I'm not using LMTP directly and so I've revealed what may be yet
> another bug -- deliver isn't properly turning _every_ <LF> back into a
> <CRLF>, but instead is still leaving what it sees as existing <CRLF>
> pairs alone.
> 
> I'll have to do some more extensive experiments -- I should be able to
> configure Smail to preserve the original <CRLF> pairs (and bare <CR>s)
> when feeding the message to "deliver".....  (I need to re-install
> current versions on my test machine before I bugger up a production
> machine though! :-)
> 
> 
> In any case I think I'll revert to blaming Cyrus for the observed
> behaviour that was originally reported.  It should not be stuffing an
> extra newline in front of a bare <CR> -- rather it should simply be
> passing it through transparently as a bare <CR>.  I.e. contrary to
> whomever said <CR><CRLF> wasn't valid SMTP, well it is, perfectly
> valid as per RFC 2821.
> 

Great to see some commitment.
So now we know that Cyrus presumably is doing wrong, any brave soul 
contribute with a patch?

/PH
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list