[Dovecot] LDA crashes on delivery (using sieve)

interfaSys sàrl interfasys at gmail.com
Thu Apr 26 17:23:25 EEST 2012


Hello,

The current version of LDA can crash (seg fault 11) under certain
circumstances.

I don't know why it happens only with some accounts, but here is a
backtrace. The user has a sieve filter in place :

(gdb) bt full
#0  0x0000000800443434 in smtp_client_open () from
/usr/lib/dovecot/libdovecot-lda.so.0
No symbol table info available.
#1  0x00000008009943ab in lda_sieve_smtp_open.2406.2210 () from
/usr/lib/dovecot/lib90_sieve_plugin.so
No symbol table info available.
#2  0x0000000800e80532 in sieve_smtp_open () from
/usr/lib/dovecot/libdovecot-sieve.so.0
No symbol table info available.
#3  0x0000000800e6157d in act_redirect_send.23018 () from
/usr/lib/dovecot/libdovecot-sieve.so.0
No symbol table info available.
#4  0x0000000800e7e175 in act_redirect_commit.23025 () from
/usr/lib/dovecot/libdovecot-sieve.so.0
No symbol table info available.
#5  0x0000000800e5f2bd in sieve_result_execute () from
/usr/lib/dovecot/libdovecot-sieve.so.0
No symbol table info available.
#6  0x0000000800e5ee7b in sieve_multiscript_execute.25305 () from
/usr/lib/dovecot/libdovecot-sieve.so.0
No symbol table info available.
#7  0x0000000800e496f8 in sieve_multiscript_run () from
/usr/lib/dovecot/libdovecot-sieve.so.0
No symbol table info available.
#8  0x0000000800994652 in lda_sieve_multiscript_execute.2399.2297 ()
from /usr/lib/dovecot/lib90_sieve_plugin.so
No symbol table info available.
#9  0x00000008009942c7 in lda_sieve_deliver_mail.2402.2206 () from
/usr/lib/dovecot/lib90_sieve_plugin.so
No symbol table info available.
#10 0x00000008004435d8 in mail_deliver () from
/usr/lib/dovecot/libdovecot-lda.so.0
No symbol table info available.
#11 0x00000000004029f7 in main (argc=7, argv=0x7fffffffe830) at main.c:434
        set_roots = {0x404520, 0x0}
        ctx = {pool = 0x800a0d820, set = 0x800a3cc98, session =
0x800a0d840, dup_ctx = 0x800abf0c0, session_id = 0x0, src_mail =
0x800a34840, src_envelope_sender = 0x800a0d858 "mailtest at example.com",
dest_user = 0x800a89040, dest_addr = 0x7fffffffebfd "test at example.com",
  final_dest_addr = 0x7fffffffebfd "test at example.com", dest_mailbox_name
= 0x40356b "INBOX", dest_mail = 0x0, var_expand_table = 0x0,
tried_default_save = false, saved_mail = false, save_dest_mail = false,
mailbox_full = false, dsn = false}
        service_flags = 1027
        user = (const __unknown__ *) 0x7fffffffebcc "test at example.com"
        errstr = (const __unknown__ *) 0x0
        path = (const __unknown__ *) 0x0
        storage_service = (struct mail_storage_service_ctx *) 0x800a30840
        service_user = (struct mail_storage_service_user *) 0x800a3c0a0
        service_input = {module = 0x403567 "lda", service = 0x403567
"lda", username = 0x7fffffffebcc "test at example.com", session_id = 0x0,
local_ip = {family = 0, u = {ip6 = {__u6_addr = {__u6_addr8 = '\0'
<repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32
= {0, 0, 0, 0}}}, ip4 = {
        s_addr = 0}}}, remote_ip = {family = 0, u = {ip6 = {__u6_addr =
{__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0,
0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, local_port =
0, remote_port = 0, userdb_fields = 0x0, flags_override_add = 0,
flags_override_remove = 0,
  no_userdb_lookup = 0}
        storage = (struct mail_storage *) 0x0
        user_source = (const __unknown__ *) 0x4034c0 ""
        destaddr_source = (const __unknown__ *) 0x403576 "-a parameter"
        process_euid = 0
        stderr_rejection = false
        ret = 1
        c = -1
        error = MAIL_ERROR_NONE


Cheers,

Olivier



More information about the dovecot mailing list