I am testing migration from Qpopper 4.0.5 and have come across a problem.
Dovecot dies while processing UIDL command when accessing malformed
Qpopper's mbox which has duplicated "From " separator. Qpopper
occasionally makes such header while rewriting mbox.
In the attached file, unnecessary "From " at line 3.
----------------
* Dovecot 1.0.0 on Debian 4.0(x86)
* ext3 filesystem(not NFS)
* description
Dovecot dies while processing UIDL command with malformed
Qpopper's mbox which has duplicated "From " separator.
This occurs when "pop3_reuse_xuidl" is "yes".
conversation with Dovecot
~~~~~~~~~~~~~~~~~~~~~~~~~
$ telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user xxxxxxxx
+OK
pass xxxxxxxx
+OK Logged in.
uidl
Connection closed by foreign host.
* Dovecot configuration
# /usr/local/etc/dovecot.conf
protocols: imap pop3
ssl_disable: yes
disable_plaintext_auth: no
login_dir: /usr/local/var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
mail_extra_groups: mail
mail_location: mbox:~/:INBOX=/var/mail/%u
mail_full_filesystem_access: yes
mbox_write_locks: fcntl
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
pop3_reuse_xuidl(default): no
pop3_reuse_xuidl(imap): no
pop3_reuse_xuidl(pop3): yes
pop3_uidl_format(default):
pop3_uidl_format(imap):
pop3_uidl_format(pop3): %08Xu%08Xv
auth default:
passdb:
driver: pam
userdb:
driver: passwd
socket:
type: listen
client:
path: /var/spool/postfix/private/auth
mode: 432
user: postfix
group: postfix
master:
* how to reproduce
1. set "pop3_reuse_xuidl = yes".
2. replace test user's mailbox with attached file.
3. pop3 login and exec "UIDL". POP3 process will die.
--
// --------------------------------------------------------------
// MAEDA, Go <maeda-g at secom-sanin.co.jp>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: syslog.txt
URL:
<http://dovecot.org/pipermail/dovecot/attachments/20070524/4fc993cf/attachment-0004.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: malformed-mbox.txt
URL:
<http://dovecot.org/pipermail/dovecot/attachments/20070524/4fc993cf/attachment-0005.txt>
Timo Sirainen
2007-May-24 08:35 UTC
[Dovecot] Dovecot crashes with malformed Qpopper's mbox
On Thu, 2007-05-24 at 16:51 +0900, ?? ? wrote:> Dovecot dies while processing UIDL command when accessing malformed > Qpopper's mbox which has duplicated "From " separator. Qpopper > occasionally makes such header while rewriting mbox.Thanks, fixed: http://hg.dovecot.org/dovecot-1.0/rev/89aa4c7f40b7 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20070524/727f1b08/attachment-0002.bin>
>> Dovecot dies while processing UIDL command when accessing malformed >> Qpopper's mbox which has duplicated "From " separator. Qpopper >> occasionally makes such header while rewriting mbox. > > Thanks, fixed: http://hg.dovecot.org/dovecot-1.0/rev/89aa4c7f40b7It works. Thanks you. Although the malformed mbox I sent is consists of 2 messages, Dovecot recognizes 3 messages. +OK Dovecot ready. user xxxxxxxx +OK pass xxxxxxxx +OK Logged in. list +OK 3 messages: 1 23 2 940 3 968 . retr 1 +OK 23 octets X-UIDL: i[f"!$h*!!S67!!/RW!! . In the above pop3 session, message #1 and #2 is originally one message, so Dovecot should recognize that the whole mbox contains 2 messages, not 3 messages. I would like you to consider improving Dovecot to skip second (and duplicated, unnecessary) "From" separator. -- // -------------------------------------------------------------- // MAEDA, Go <maeda-g at secom-sanin.co.jp>