[Dovecot] RE: imap segv trying to list inbox
(This is releveant information to the one that Alex Moore just posted, but I'm not subscribed yet so I can't properly reply to that thread. Sorry for creating a new one.)
I've got a crash in dovecot-imap when trying to list the inbox on a nonexistant directory. I'm not sure how it should be handled, but basically it's only happening when the directory in imap's MAIL environment doesn't exist.
This is a problem for me because I'm trying to have dovecot create all the necessary directories in the specified environment, as I don't know if the user will pop/imap or recieve an email first, and the dir needs to either be already ready, or created upon reciept. I've already got postfix to create a ~/Maildir when a new mail comes in, but for my migration plan to work, I need dovecot to create this directory instead of segfaulting. ;)
dante:/usr/lib/dovecot# MAIL=maildir:/tmp/nonexistant gdb ./imap (gdb) run Starting program: /usr/lib/dovecot/imap (no debugging symbols found)...(no debugging symbols found)...
- PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as root 1 list "" inbox (no debugging symbols found)... Program received signal SIGSEGV, Segmentation fault. 0x400c32ef in readdir64 () from /lib/libc.so.6 (gdb) bt #0 0x400c32ef in readdir64 () from /lib/libc.so.6 #1 0x0805c70b in maildir_expunge_locked () #2 0x0805cda1 in maildir_list_mailbox_init () #3 0x08052a60 in cmd_idle () #4 0x08052d4a in _cmd_list_full () #5 0x08052ea7 in cmd_list () #6 0x08054a19 in _client_reset_command () #7 0x08054aa8 in _client_input () #8 0x0808adb8 in io_loop_handler_run () #9 0x0808a748 in io_loop_run () #10 0x0805aab9 in main () #11 0x40034dc6 in __libc_start_main () from /lib/libc.so.6
If I use MAIL=maildir:/tmp/nonexistant, it crashes, but what I'm really trying to do is MAIL=maildir:/home/staff/%u/Maildir/, which will necessarily be nonexistant, and I'd like to see dovecot create this in the manner that postfix does; with the logged in user's uid/gid.
Now, if I leave default_mail_env blank, and let dovecot's autodetection do the work, it seems to create a maildir in ~/mail. This works just fine, except it's the wrong directory.
Otherwise, dovecot rocks, and in another, less automatic setup, I've been using it for the better part of a year with nothing but happy results, and appreciate your work. (Irssi too :)
-Sam
participants (1)
-
Sam Powers