[Dovecot] 1.2.15 - segfault if host field attribute not present in ldap. (proxy)
In case this is relevant:
kernel: [17549.714369] imap-login[11704]: segfault at 0 ip b75c3d23 sp bf888178 error 4 in libc-2.11.2.so[b7551000+140000]
If no host field attribute is present in ldap (like mailHost for qmail-ldap), and we are trying to use proxy, then dovecot segfaults. If more information's needed, let me know.
Also, somewhat unrelated, but maybe the wiki needs to be edited since using a template as =proxy_maybe=y works, while in wiki its kinda opposite. I don't know of specifics, but should I try using a recent release ?
On Sat, Dec 4, 2010 at 6:32 PM, Mohit Chawla <mohit.chawla.binary@gmail.com>wrote:
If more information's needed, let me know.
Apologies for not providing the info in the first place. Not that I have it right now either, but will post from the workstation tomorrow, since this is always reproducible. Also, have edited the wiki to try using =proxy_maybe=y if it doesn't work otherwise.
On 5.12.2010, at 5.41, Mohit Chawla wrote:
Apologies for not providing the info in the first place. Not that I have it right now either, but will post from the workstation tomorrow, since this is always reproducible. Also, have edited the wiki to try using =proxy_maybe=y if it doesn't work otherwise.
The wiki's example was just broken.
Here's the full back trace:
#0 0xb7434d23 in strchr () from /lib/i686/cmov/libc.so.6 No symbol table info available. #1 0x0805e02e in net_addr2ip (addr=0x0, ip=0xbf93c3dc) at network.c:619 No locals. #2 0x0804f01a in login_proxy_is_ourself (client=0x93b5060, host=0x0, port=143, destuser=0x93b8c08 "resource") at login-proxy.c:322 ip = {family = 14143, u = {ip6 = {__in6_u = { __u6_addr8 = "\300\241:\t&\241:\t\004\000\000\000`P;\t", __u6_addr16 = {41408, 2362, 41254, 2362, 4, 0, 20576, 2363}, __u6_addr32 = {154837440, 154837286, 4, 154882144}}}, ip4 = {s_addr = 154837440}}} #3 0x0804d612 in imap_proxy_new (client=0x93b5060, host=0x0, port=143, user=0x93b8c08 "resource", master_user=0x0, password=0x93aa12b "debian", ssl_flags=0, connect_timeout_msecs=0) at imap-proxy.c:448 __PRETTY_FUNCTION__ = "imap_proxy_new" #4 0x0804cea4 in client_handle_args (client=<value optimized out>, args=<value optimized out>, success=58, nodelay_r=0xbf93c50f) at client-authenticate.c:200 reason = 0x0 host = 0x0 destuser = 0x93b8c08 "resource" pass = 0x93aa12b "debian" master_user = 0x0 key = 0x0 value = <value optimized out> ssl_flags = 0 reply = <value optimized out> port = 143 proxy_timeout_msecs = 0 proxy = true temp = false nologin = false authz_failure = false #5 0x0804d3a4 in sasl_callback (_client=0x93b5060, reply=SASL_SERVER_REPLY_SUCCESS, data=0x0, args=0x3a3a3a3a) at client-authenticate.c:283 iov = {{iov_base = 0x0, iov_len = 3214132568}, {iov_base = 0x80516fb, iov_len = 154837271}, {iov_base = 0x0, iov_len = 131}} msg = <value optimized out> nodelay = <value optimized out> __PRETTY_FUNCTION__ = "sasl_callback" #6 0x0805116f in call_client_callback (client=0x0, reply=976894522, data=0x3a3a <Address 0x3a3a out of bounds>, args=0x93aa13c) at sasl-server.c:36 sasl_callback = 0x804d250 <sasl_callback> __PRETTY_FUNCTION__ = "call_client_callback" #7 0x080568ab in auth_client_input_ok (conn=0x93baf28, args=0x93b4082 "1\tuser=resource\tproxy\tpass=debian") at auth-server-request.c:204 list = 0x0 data_base64 = 0x0 request = 0x93b8b40 id = 134650364 #8 0x08055825 in auth_client_input_line (conn=0x93baf28) at auth-server-connection.c:136 No locals. #9 auth_client_input (conn=0x93baf28) at auth-server-connection.c:195 _data_stack_cur_id = 3 line = 0x93b4082 "1\tuser=resource\tproxy\tpass=debian" #10 0x0805c566 in io_loop_handler_run (ioloop=0x93b2288) at ioloop-epoll.c:208 ctx = 0x93b2308 event = <value optimized out> list = 0x93bb330 io = 0x93bb308 tv = {tv_sec = 29, tv_usec = 999917} t_id = 2 msecs = <value optimized out> ret = 1 ---Type <return> to continue, or q <return> to quit--- i = 0 j = 0 call = <value optimized out> #11 0x0805b9e0 in io_loop_run (ioloop=0x93b2288) at ioloop.c:335 No locals. #12 0x080503a9 in main (argc=2, argv=0xbf93c7d4, envp=0xbf93c7e0) at main.c:494 group_name = 0xb75675c0 "\277\001" remote_ip = {family = 57200, u = {ip6 = {__in6_u = { __u6_addr8 = "\bA\a\b(Ǔ\277\211o\006\b\004CP\267", __u6_addr16 = {16648, 2055, 50984, 49043, 28553, 2054, 17156, 46928}, __u6_addr32 = {134693128, 3214133032, 134639497, 3075490564}}}, ip4 = {s_addr = 134693128}}} local_ip = {family = 50964, u = {ip6 = {__in6_u = { __u6_addr8 = "@2q\267\bA\a\b\370Ɠ\277P\244\004\b", __u6_addr16 = {12864, 46961, 16648, 2055, 50936, 49043, 42064, 2052}, __u6_addr32 = {3077648960, 134693128, 3214132984, 134521936}}}, ip4 = {s_addr = 3077648960}}} remote_port = 3214133032 local_port = 976894522 max_fds = 0 proxy = 0x0 client = <value optimized out> i = <value optimized out> fd = -1080834092 master_fd = -1 ssl = 192
*dovecot -n* # 1.2.15: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-3-686 i686 Debian squeeze/sid log_timestamp: %Y-%m-%d %H:%M:%S protocols: imap managesieve listen(default): * listen(imap): * listen(managesieve): *:2000 ssl: no disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable(default): /usr/lib/dovecot/imap-login -D login_executable(imap): /usr/lib/dovecot/imap-login -D login_executable(managesieve): /usr/lib/dovecot/managesieve-login mail_privileged_group: mail mail_location: maildir:~/Maildir mmap_disable: yes mail_nfs_storage: yes mail_nfs_index: yes mbox_write_locks: fcntl dotlock mail_executable(default): /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/imap mail_executable(managesieve): /usr/lib/dovecot/managesieve mail_plugins(default): quota mail_plugins(imap): quota mail_plugins(managesieve): mail_plugin_dir(default): /usr/lib/dovecot/modules/imap mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve managesieve_logout_format(default): bytes=%i/%o managesieve_logout_format(imap): bytes=%i/%o managesieve_logout_format(managesieve): bytes=%i%o lda: postmaster_address: sogone@djb.hell.qua mail_plugins: quota sieve deliver_log_format: msgid=%m: %$ sendmail_path: /usr/lib/sendmail log_path: /var/log/ldaone info_log_path: /var/log/ldatwo debug: yes auth default: debug: yes passdb: driver: ldap args: /etc/dovecot/dovecot-ldap.deny deny: yes passdb: driver: ldap args: /etc/dovecot/dovecot-ldap.pass userdb: driver: prefetch userdb: driver: ldap args: /etc/dovecot/dovecot-ldap.user socket: type: listen master: path: /var/run/dovecot/auth-master mode: 438 plugin: quota: maildir sieve: ~/.dovecot.sieve sieve_dir: ~/sieve
On Mon, 2010-12-06 at 11:17 +0530, Mohit Chawla wrote:
#1 0x0805e02e in net_addr2ip (addr=0x0, ip=0xbf93c3dc) at network.c:619 No locals. #2 0x0804f01a in login_proxy_is_ourself (client=0x93b5060, host=0x0, port=143, destuser=0x93b8c08 "resource") at login-proxy.c:322
Thanks, fixed: http://hg.dovecot.org/dovecot-1.2/rev/ebc5dc47eb59
(It was already fixed in v2.0.)
On Mon, Dec 6, 2010 at 11:35 AM, Timo Sirainen <tss@iki.fi> wrote:
Thanks, fixed: http://hg.dovecot.org/dovecot-1.2/rev/ebc5dc47eb59
(It was already fixed in v2.0.)
Awesome, thanks.
Sorry if this is not the right place to inquire but, is there a policy or framework for including such patches by the Debian maintainers ? Or should bug reports be submitted there separately as well ?
On 6.12.2010, at 9.29, Mohit Chawla wrote:
Sorry if this is not the right place to inquire but, is there a policy or framework for including such patches by the Debian maintainers ? Or should bug reports be submitted there separately as well ?
Does it really matter? The possibilities are:
without patch: it crashes without host -> doesn't work
with patch: it gives an error message without host -> doesn't work
The end result is the same anyway.
participants (2)
-
Mohit Chawla
-
Timo Sirainen