centos 7 dovecot 2.2.10 segmentation fault on devcot/auth using ldap driver in userdb

Andrea Lisci andrelisci at gmail.com
Wed Jun 17 21:03:12 UTC 2015


dovecot 2.2.10 packaged by centos 7

configuring ldap driver on userdb cause imap crash during login

userdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap-userdb.conf3.ext
 
  # Default fields can be used to specify defaults that LDAP may override
  #default_fields = home=/home/virtual/%u
}


#ldap conf
---------------
hosts = myDChost
base = dc=company,dc=testdomain,dc=dom
ldap_version = 3
auth_bind = yes
auth_bind_userdn = windowsdomain\%u
user_filter = (&(objectclass=person)(|(mail=%u)(sAMAccountName=%n)))
user_attrs =
=uid=vmail,=gid=vmail,=home=/users/vmail/maildomain.com/%n,=mail_location=maildir:/users/vmail/maildomain.com/%n/Maildir
tls = yes
tls_require_cert = never


dovecot -n
---------------
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-229.4.2.el7.x86_64 x86_64 CentOS Linux release
7.1.1503 (Core)  xfs
auth_debug = yes
auth_mechanisms = plain login
listen = *
mail_debug = yes
mail_location = maildir:/users/vmail/maildomain.com/%n/Maildir
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 ihave
mbox_write_locks = fcntl
namespace inbox {
  inbox = 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 =
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf2.ext
  driver = ldap
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
ssl = required
ssl_cert = </etc/pki/dovecot/certs/mail.maildomain.com.crt.pem
ssl_key = </etc/pki/dovecot/private/mail.maildomain.com.key.pem
userdb {
  args = /etc/dovecot/dovecot-ldap-userdb.conf3.ext
  driver = ldap
}
protocol lmtp {
  mail_plugins = " quota sieve"
  passdb {
    args = password=foo
    driver = static
  }
}
protocol lda {
  mail_plugins = " sieve"
}

core dump
-------------
gdb /usr/libexec/dovecot/auth /var/core/25122
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-64.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/libexec/dovecot/auth...Reading symbols from
/usr/lib/debug/usr/libexec/dovecot/auth.debug...done.
done.
[New LWP 25122]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Missing separate debuginfo for /usr/lib64/libnssckbi.so
Try: yum --enablerepo='*debug*' install
/usr/lib/debug/.build-id/1e/a2171aee7143d971607597b24f2a97e9276cbb.debug
Core was generated by `dovecot/auth'.
Program terminated with signal 11, Segmentation fault.
#0  db_ldap_handle_request_result (res=0x0, idx=<optimized out>,
request=<optimized out>, conn=<optimized out>) at db-ldap.c:819
819            request->callback(conn, request, res->msg);
(gdb) bt full
#0  db_ldap_handle_request_result (res=0x0, idx=<optimized out>,
request=<optimized out>, conn=<optimized out>) at db-ldap.c:819
        _data_stack_cur_id = 3
        srequest = <optimized out>
        ret = <optimized out>
        final_result = <optimized out>
        named_res = <optimized out>
#1  db_ldap_handle_result (res=<optimized out>, conn=<optimized out>) at
db-ldap.c:886
        auth_request = 0x7f3704fa2620
        idx = <optimized out>
        msgid = <optimized out>
#2  ldap_input (conn=<optimized out>) at db-ldap.c:918
        timeout = {tv_sec = 0, tv_usec = 0}
        res = 0x7f3704b1b530
        msg = 0x7f370489fcb0
        prev_reply_diff = <optimized out>
        ret = <optimized out>
#3  0x00007f3702a19a47 in io_loop_call_io (io=0x7f37046dbad0) at
ioloop.c:388
        ioloop = 0x7f37046bd7b0
        t_id = 2
#4  0x00007f3702a1a8cf in io_loop_handler_run
(ioloop=ioloop at entry=0x7f37046bd7b0) at ioloop-epoll.c:220
        ctx = 0x7f37046c5450
        events = <optimized out>
        list = 0x7f3704998170
        io = <optimized out>
        tv = {tv_sec = 0, tv_usec = 999118}
        events_count = <optimized out>
        msecs = <optimized out>
        ret = 1
        i = 0
        call = <optimized out>
        __FUNCTION__ = "io_loop_handler_run"
#5  0x00007f3702a19598 in io_loop_run (ioloop=0x7f37046bd7b0) at
ioloop.c:412
        __FUNCTION__ = "io_loop_run"
#6  0x00007f37029c69e3 in master_service_run (service=0x7f37046bd640,
callback=<optimized out>) at master-service.c:571
No locals.
#7  0x00007f3702ea77f1 in main (argc=1, argv=0x7f37046bd390) at main.c:393
        c = <optimized out>



More information about the dovecot mailing list