Segfault on LIST Command
Thorsten Hater
thorsten.hater at gmail.com
Mon Jan 23 09:45:41 UTC 2017
Hi,
I did added the default location and stripped down my config to a very
basic
level, dropping all plugins and database queries, see below. The segfault
still
appears in the same location.
As I have build from source, I wonder whether you can reproduce the problem?
Thorsten
$ doveconf -n
# 2.2.26.0 (23d1de6): /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.16 (1dc4c73)
# OS: Linux 3.18.16-intel-vm-64bit x86_64 Debian 8.6
auth_debug = yes
auth_debug_passwords = yes
auth_socket_path = /usr/local/var/run/dovecot/auth-userdb
auth_verbose = yes
base_dir = /usr/local/var/run/dovecot/
default_internal_user = pop
first_valid_uid = 48
import_environment = TZ DEBUG=1
last_valid_uid = 48
login_greeting = Dovecot ready.
login_trusted_networks = ****
mail_debug = yes
mail_gid = pop
mail_location = maildir:~/Maildir
mail_plugin_dir = /usr/local/lib/dovecot/
mail_uid = pop
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags
copy include variables body enotify environment mailbox date index ihave
duplicate mime foreverypart extracttext
namespace inbox {
inbox = yes
list = children
location = maildir:~/Maildir
prefix = INBOX.
separator = .
subscriptions = yes
type = private
}
passdb {
args = nopassword=yes
driver = static
}
protocols = imap pop3 lmtp imap pop3
ssl = no
userdb {
args = home=**** uid=pop gid=pop quota_rule=*:bytes=1000M
driver = static
}
verbose_proctitle = yes
protocol lda {
auth_socket_path = /usr/local/var/run/dovecot/auth-userdb
}
On Mon, Jan 23, 2017 at 10:01 AM, Thorsten Hater <thorsten.hater at gmail.com>
wrote:
> Hi,
>
> thanks for picking this up. The location is pulled from the database, but
> is uniform
> for all users, so I could set it to maildir:~/Maildir globally. Assuming
> ~ is expanded
> later on with userdb data. So, no, there is no special intention behind
> this.
>
> Thorsten
>
> On Mon, Jan 23, 2017 at 9:37 AM, Aki Tuomi <aki.tuomi at dovecot.fi> wrote:
>
>>
>>
>> On 19.01.2017 15:56, Thorsten Hater wrote:
>> > The Problem arises due to a NULL deref in mail_namespaces.c line 601.
>> > Backtrace below
>> >
>> > x LIST "" ""
>> >
>> > Program received signal SIGSEGV, Segmentation fault.
>> > mail_namespaces_get_root_sep (namespaces=0x0) at mail-namespace.c:601
>> > 601 while ((namespaces->flags & NAMESPACE_FLAG_LIST_PREFIX) == 0)
>> > (gdb) bt
>> > #0 mail_namespaces_get_root_sep (namespaces=0x0) at
>> mail-namespace.c:601
>> > #1 0x000000000041164c in cmd_list_ref_root (ref=0x65b060 "",
>> > client=0x65a590) at cmd-list.c:324
>> > #2 cmd_list_full (cmd=0x65aee0, lsub=<optimized out>) at cmd-list.c:461
>> > #3 0x0000000000419825 in command_exec (cmd=cmd at entry=0x65aee0) at
>> > imap-commands.c:181
>> > #4 0x0000000000417de2 in client_command_input (cmd=cmd at entry=0x65aee0)
>> at
>> > imap-client.c:988
>> > #5 0x0000000000417e70 in client_command_input (cmd=0x65aee0) at
>> > imap-client.c:1048
>> > #6 0x00000000004181e5 in client_handle_next_command
>> > (remove_io_r=<synthetic pointer>, client=0x65a590) at imap-client.c:1090
>> > #7 client_handle_input (client=0x65a590) at imap-client.c:1102
>> > #8 0x0000000000418692 in client_input (client=0x65a590) at
>> > imap-client.c:1149
>> > #9 0x00007ffff76297ac in io_loop_call_io (io=0x652aa0) at ioloop.c:589
>> > #10 0x00007ffff762ab4a in io_loop_handler_run_internal
>> > (ioloop=ioloop at entry=0x63e7f0)
>> > at ioloop-epoll.c:222
>> > #11 0x00007ffff7629835 in io_loop_handler_run (ioloop=ioloop at entry
>> =0x63e7f0)
>> > at ioloop.c:637
>> > #12 0x00007ffff76299d8 in io_loop_run (ioloop=0x63e7f0) at ioloop.c:613
>> > #13 0x00007ffff75b9823 in master_service_run (service=0x63e690,
>> > callback=callback at entry=0x423d40 <client_connected>) at
>> master-service.c:641
>> > #14 0x000000000040c567 in main (argc=3, argv=0x63e390) at main.c:460
>> >
>> > On Thu, Jan 19, 2017 at 1:05 PM, Thorsten Hater <
>> thorsten.hater at gmail.com>
>> > wrote:
>> >
>> >> Dear all,
>> >>
>> >> I experience SegFaults in the imap binary on a LIST "" "" command,
>> >> as sent by Claws mail. Using LIST "" "INBOX" or similar is fine.
>> >> Here is an example telnet session
>> >>
>> >> $ telnet 127.0.0.1 143
>> >> Trying 127.0.0.1...
>> >> Connected to 127.0.0.1.
>> >> Escape character is '^]'.
>> >> * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
>> IDLE
>> >> AUTH=PLAIN] Dovecot ready.
>> >> 01 LOGIN **** ****
>> >> 01 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
>> >> IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS
>> THREAD=ORDEREDSUBJECT
>> >> MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
>> >> LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES
>> WITHIN
>> >> CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE QUOTA] Logged in
>> >> 02 LIST "" ""
>> >> Connection closed by foreign host.
>> >>
>> >> In the log file
>> >>
>> >> dovecot[8375]: imap(***): Fatal: master: service(imap): child 15803
>> killed
>> >> with signal 11 (core dumps disabled)
>> >>
>> >> Please find the config below.
>> >>
>> >> Best regards,
>> >> Thorsten
>> >>
>> >> $ doveconf -n
>> >> # 2.2.26.0 (23d1de6): /etc/dovecot/dovecot.conf
>> >> # Pigeonhole version 0.4.16 (1dc4c73)
>> >> # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.6
>> >> auth_debug = yes
>> >> auth_debug_passwords = yes
>> >> auth_socket_path = /var/run/dovecot/auth-userdb
>> >> auth_verbose = yes
>> >> base_dir = /var/run/dovecot/
>> >> default_internal_user = pop
>> >> first_valid_uid = 48
>> >> import_environment = TZ DEBUG=1
>> >> last_valid_uid = 48
>> >> login_trusted_networks = ****
>> >> mail_debug = yes
>> >> mail_gid = pop
>> >> mail_plugins = " mail_log notify zlib quota"
>> >> mail_uid = pop
>> >> managesieve_notify_capability = mailto
>> >> managesieve_sieve_capability = fileinto reject envelope
>> encoded-character
>> >> vacation subaddress comparator-i;ascii-numeric relational regex
>> imap4flags
>> >> copy include variables body enotify environment mailbox date index
>> ihave
>> >> duplicate mime foreverypart extracttext
>> >> namespace inbox {
>> >> inbox = yes
>> >> list = children
>> >> location =
>> >> mailbox Drafts {
>> >> auto = no
>> >> special_use = \Drafts
>> >> }
>> >> mailbox Sent {
>> >> auto = no
>> >> special_use = \Sent
>> >> }
>> >> mailbox Trash {
>> >> auto = no
>> >> autoexpunge = 30 days
>> >> special_use = \Trash
>> >> }
>> >> mailbox drafts {
>> >> auto = no
>> >> special_use = \Drafts
>> >> }
>> >> mailbox sent {
>> >> auto = no
>> >> special_use = \Sent
>> >> }
>> >> mailbox spamverdacht {
>> >> auto = no
>> >> autoexpunge = 30 days
>> >> special_use = \Junk
>> >> }
>> >> mailbox trash {
>> >> auto = no
>> >> autoexpunge = 30 days
>> >> special_use = \Trash
>> >> }
>> >> mailbox virenverdacht {
>> >> auto = no
>> >> autoexpunge = 30 days
>> >> special_use = \Junk
>> >> }
>> >> prefix = INBOX.
>> >> separator = .
>> >> subscriptions = yes
>> >> type = private
>> >> }
>> >> passdb {
>> >> args = nopassword=y
>> >> driver = static
>> >> }
>> >> plugin {
>> >> last_login_dict = file:~/lastlogin
>> >> mail_log_events = delete undelete expunge copy mailbox_delete
>> >> mailbox_rename
>> >> mail_log_fields = uid box msgid size
>> >> quota = maildir:User quota
>> >> quota_warning = storage=80%% 80 %u %{userdb:quota_bytes}
>> >> quota_warning2 = storage=90%% 90 %u %{userdb:quota_bytes}
>> >> quota_warning3 = storage=95%% 95 %u %{userdb:quota_bytes}
>> >> sieve = ldap:/etc/dovecot/pigeonhole-ldap.conf
>> >> sieve_dir = ~/sieve
>> >> sieve_plugins = sieve_storage_ldap
>> >> zlib_save = gz
>> >> zlib_save_level = 6
>> >> }
>> >> service imap {
>> >> executable = imap postlogin
>> >> }
>> >> service pop3 {
>> >> executable = pop3 postlogin
>> >> }
>> >> service postlogin {
>> >> executable = script-login -d rawlog
>> >> }
>> >> service quota-warning {
>> >> executable = script /bin/quota-warning.sh
>> >> }
>> >> ssl = no
>> >> userdb {
>> >> args = /etc/dovecot/userdb-ldap.conf
>> >> driver = ldap
>> >> result_failure = return-fail
>> >> result_internalfail = return-fail
>> >> result_success = continue-ok
>> >> }
>> >> userdb {
>> >> default_fields = quota_bytes=42M
>> >> driver = bdb_quota
>> >> override_fields = quota_rule=*:bytes=%{userdb:quota_bytes}
>> >> result_failure = return-fail
>> >> result_internalfail = return-fail
>> >> result_success = continue-ok
>> >> }
>> >> verbose_proctitle = yes
>> >> protocol lda {
>> >> auth_socket_path = /var/run/dovecot/auth-userdb
>> >> mail_plugin_dir = /lib/dovecot/modules
>> >> mail_plugins = " mail_log notify zlib quota sieve"
>> >> }
>> >> protocol imap {
>> >> mail_plugins = " mail_log notify zlib quota imap_xauth last_login
>> >> imap_quota"
>> >> }
>> >> protocol pop3 {
>> >> mail_plugins = " mail_log notify zlib quota last_login"
>> >> }
>> >>
>>
>> Hi!
>>
>> We are looking into this crash.
>>
>> Are you intentionally setting inbox namespace location to empty?
>>
>> Aki
>>
>
>
More information about the dovecot
mailing list