<<< Date Index >>>     <<< Thread Index >>>

Re: [john@xxxxxxxxxxxxxx: Bug#297084: possible fix]



On Saturday, 30 July 2005 at 18:49, Marco d'Itri wrote:
> 
> Subject: Bug#297084: possible fix
> Reply-To: John Hedges <john@xxxxxxxxxxxxxx>, 297084@xxxxxxxxxxxxxxx
> To: 297084@xxxxxxxxxxxxxxx
> From: John Hedges <john@xxxxxxxxxxxxxx>
> 
> I get the same problem. I found '\0's in the messages that caused the
> hang and this fix works for me - whether it is the right thing I couldn't
> say.
> 
> John
> 
> diff -ruN mutt-1.5.9.orig/imap/message.c mutt-1.5.9/imap/message.c
> +++ mutt-1.5.9/imap/message.c   2005-07-29 16:01:13.446252488 +0100
> @@ -590,6 +590,9 @@
>  
>     for (last = EOF, len = 0; (c = fgetc(fp)) != EOF; last = c)
>     {
> +    if (c == '\0')
> +      continue;
> +    
>      if (c == '\n' && last != '\r')
>        buf[len++] = '\r';

This doesn't seem right. For one thing you can end up appending fewer
bytes than you had said you would - I don't think that's going to be
good for most servers. And for another, to quote RFC 3501:

  The APPEND command appends the literal argument as a new message to
  the end of the specified destination mailbox.  This argument SHOULD be
  in the format of an [RFC-2822] message.  8-bit characters are
  permitted in the message.  A server implementation that is unable to
  preserve 8-bit data properly MUST be able to reversibly convert
  8-bit APPEND data to 7-bit using a [MIME-IMB] content transfer
  encoding.

In other words, it sounds like Courier's not compliant. It would be
good if mutt didn't hang though. I'd have to see a trace to understand
better what was happening. I suppose the worst case scenario is that
mutt converts 8-bit bodies to base64 or something itself before
uploading, but that's really not ideal.

Attachment: pgpQ9p5RkdRDu.pgp
Description: PGP signature