[Dovecot] segfault in mail_user_get_home()
Timo Sirainen
tss at iki.fi
Fri Aug 31 16:19:38 EEST 2012
I couldn't reproduce it with your config, but I figured out the cause of it anyway. Fixed:
http://hg.dovecot.org/dovecot-2.1/rev/6b9db780b47d
On 21.8.2012, at 15.45, Lazy wrote:
> it was shared namespace with empty location that produced the error
> so :
> namespace test {
> list = children
> location =
> prefix = test.
> subscriptions = yes
> type = shared
> }
>
> segfaults
>
> with location is fine
>
>
>
> 2012/8/21, Lazy <lazy404 at gmail.com>:
>> gdb ./src/imap/.libs/imap
>>
>> Reading symbols from /usr/src/dovecot-2.1.9/src/imap/.libs/imap...done.
>> (gdb) run
>> Starting program: /usr/src/dovecot-2.1.9/src/imap/.libs/imap
>> warning: no loadable sections found in added symbol-file
>> system-supplied DSO at 0x7ffff7ffa000
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>> process 1104 is executing new program: /usr/local/dovecot/bin/doveconf
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>> process 1104 is executing new program:
>> /usr/src/dovecot-2.1.9/src/imap/.libs/imap
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x00007ffff7b2a0ff in mail_user_get_home (user=0x0,
>> home_r=0x7fffffffe308) at mail-user.c:310
>> 310 if (user->home_looked_up) {
>> (gdb) bt
>> #0 0x00007ffff7b2a0ff in mail_user_get_home (user=0x0,
>> home_r=0x7fffffffe308) at mail-user.c:310
>> #1 0x00007ffff7ad172e in mdbox_storage_find_root_dir (ns=0x648610) at
>> mdbox-storage.c:90
>> #2 0x00007ffff7ad180c in mdbox_storage_autodetect (ns=0x648610,
>> set=0x7fffffffe4d0) at mdbox-storage.c:113
>> #3 0x00007ffff7b2345d in mail_storage_autodetect (ns=0x648610,
>> set=0x7fffffffe4d0) at mail-storage.c:105
>> #4 0x00007ffff7b2369d in mail_storage_get_class (ns=0x648610,
>> driver=0x0, list_set=0x7fffffffe4d0, flags=0, error_r=0x7fffffffe5b8)
>> at mail-storage.c:180
>> #5 0x00007ffff7b23c90 in mail_storage_create (ns=0x648610,
>> driver=0x0, flags=0, error_r=0x7fffffffe5b8) at mail-storage.c:342
>> #6 0x00007ffff7b1c62a in namespace_add (user=0x649be0,
>> ns_set=0x64a8c8, unexpanded_ns_set=0x64a1c0, mail_set=0x64a440,
>> ns_p=0x645380,
>> error_r=0x7fffffffe6e8) at mail-namespace.c:126
>> #7 0x00007ffff7b1ccbb in mail_namespaces_init (user=0x649be0,
>> error_r=0x7fffffffe6e8) at mail-namespace.c:289
>> #8 0x00007ffff7b34a64 in mail_storage_service_init_post
>> (ctx=0x633460, user=0x633e08, priv=0x7fffffffe6f0,
>> mail_user_r=0x7fffffffe7b8,
>> error_r=0x7fffffffe6e8) at mail-storage-service.c:641
>> #9 0x00007ffff7b35dd6 in mail_storage_service_next (ctx=0x633460,
>> user=0x633e08, mail_user_r=0x7fffffffe7b8) at
>> mail-storage-service.c:1114
>> #10 0x00007ffff7b35efa in mail_storage_service_lookup_next
>> (ctx=0x633460, input=0x7fffffffe810, user_r=0x7fffffffe7c0,
>> mail_user_r=0x7fffffffe7b8,
>> error_r=0x7fffffffe808) at mail-storage-service.c:1149
>> #11 0x000000000041f61c in client_create_from_input
>> (input=0x7fffffffe810, login_client=0x7fffffffe880, fd_in=0, fd_out=1,
>> input_buf=0x0,
>> error_r=0x7fffffffe808) at main.c:202
>> #12 0x000000000041f859 in main_stdio_run (username=0x0) at main.c:247
>> #13 0x000000000041fd0a in main (argc=1, argv=0x631370) at main.c:381
>>
>> /usr/local/dovecot/bin/doveconf -n
>> # 2.1.9: /usr/local/dovecot/etc/dovecot/dovecot.conf
>> # OS: Linux 2.6.32 x86_64 Debian wheezy/sid
>> namespace test {
>> list = children
>> location = maildir:/root/test
>> prefix = test.
>> subscriptions = yes
>> type = shared
>> }
>> namespace inbox {
>> inbox = yes
>> list = yes
>> location =
>> mailbox Drafts {
>> special_use = \Drafts
>> }
>> mailbox Junk {
>> special_use = \Junk
>> }
>> mailbox Sent {
>> special_use = \Sent
>> }
>> mailbox "Sent Messages" {
>> special_use = \Sent
>> }
>> mailbox Trash {
>> special_use = \Trash
>> }
>> prefix =
>> subscriptions = yes
>> }
>> passdb {
>> driver = pam
>> }
>> ssl = no
>> userdb {
>> driver = passwd
>> }
>>
>> without type = shared there is no segfault,
>>
>> I understand this config might not work (invoking imap directly) but
>> it should't segfault.
>>
>> Regards,
>>
>> Michal Grzedzicki
>>
>
More information about the dovecot
mailing list