[Dovecot] Bug fix - message/rfc822 attachments

Rick Jones rick at activeservice.co.uk
Sat Apr 3 19:17:03 EEST 2004


Greetings

I've attached a patch that fixes a bug in Dovecot relating to rfc822 
attachments. This problem shows up in Mulberry (which hammers the IMAP 
protocol more than most!).

The problem is that FETCH BODY[n], where "n" is the number for the 
message/rfc822 part, returns the wrong information. It returns the message 
without the headers, whereas it should return the entire rfc822 attachment. 
FETCH BODY[n.MIME] doesn't appear to return the MIME headers for the part 
either.

This happens because the find_part() function always steps down into the 
child when the type of the part is RFC822. It should only do this if the 
request is for a sub-part, or for HEADER. Otherwise it should stay at the 
current level.

I have to say the IMAP protocol is a bit perverse in the way implicit 
nesting of rfc822 messages is handled, which is why this looks somewhat 
hacky. I don't see a nicer way though.

The effect in Mulberry is that certain operations on rfc822 attachments 
don't work properly, in particular extracting the attachment into a 
separate message. It also affects message-digest format messages, which 
will completely lock up Mulberry if one is even present in a mailbox. (It 
may be that Dovecot itself hangs, I don't know. Once I found that the patch 
fixed both problems I didn't look any further :) Mulberry doesn't exhibit 
these problems with other IMAP servers.

The attached patch is for the source code of 0.99.10.04. I've looked at the 
"latest" source, and there is no change in these lines of code, so I guess 
the bug is still there.

-- 
Best regards
Rick Jones
-------------- next part --------------
A non-text attachment was scrubbed...
Name: imap-fetch-body-section.patch
Type: application/octet-stream
Size: 527 bytes
Desc: not available
Url : http://dovecot.org/pipermail/dovecot/attachments/20040403/da14cda9/imap-fetch-body-section.obj


More information about the dovecot mailing list