Ricardo Machini Barbosa
2018-Jul-03 02:04 UTC
lmtp issues with specific message on dovecot 2.3.2
Hello, I am getting crash on lmtp for specific message on dovecot 2.3.2 See below the backtrace: Jul 02 22:54:20 Panic: lmtp(xxx)<172769><yL/kH0zXOlvhogIAF3haWw:3>: Buffer write out of range (23153 + 18446744073709551614) Jul 02 22:54:20 Error: lmtp(xxx)<172769><yL/kH0zXOlvhogIAF3haWw:3>: Raw backtrace: /usr/lib64/dovecot/libdovecot.so.0(+0xcdfe4) [0x7f1fc8df9fe4] -> /usr/lib64/dovecot/libdovecot.so.0(+0xce09e) [0x7f1fc8dfa09e] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f1fc8d69424] -> /usr/lib64/dovecot/libdovecot.so.0(buffer_write+0xfc) [0x7f1fc8df425c] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(rfc2822_header_append+0xe7) [0x7f1fc5dd1087] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(+0x5c01c) [0x7f1fc5dac01c] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(+0x40219) [0x7f1fc5d90219] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x2ef) [0x7f1fc5d91c2f] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(+0x525be) [0x7f1fc5da25be] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(sieve_multiscript_run+0x96) [0x7f1fc5da3456] -> /usr/lib64/dovecot/lib90_sieve_plugin.so(+0x3847) [0x7f1fc6009847] -> /usr/lib64/dovecot/libdovecot-lda.so.0(mail_deliver+0xec) [0x7f1fc93fff7c] -> dovecot/lmtp [10.0.5.1 DATA](lmtp_local_data+0x6eb) [0x55f5bce9d97b] -> dovecot/lmtp [10.0.5.1 DATA](cmd_data_continue+0x25d) [0x55f5bce9c48d] -> /usr/lib64/dovecot/libdovecot.so.0(+0x4ffa2) [0x7f1fc8d7bfa2] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x65) [0x7f1fc8e11a75] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x10f) [0x7f1fc8e1335f] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x52) [0x7f1fc8e11b72] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f1fc8e11d98] -> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f1fc8d8d723] -> dovecot/lmtp [10.0.5.1 DATA](main+0x229) [0x55f5bce9b4b9] -> /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1fc8981445] -> dovecot/lmtp [10.0.5.1 DATA](+0x55e5) [0x55f5bce9b5e5] Jul 02 22:54:20 Fatal: lmtp(xxx)<172769><yL/kH0zXOlvhogIAF3haWw:3>: master: service(lmtp): child 172769 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps) uname ?a Linux mailsrv01 3.10.0-862.3.3.el7.x86_64 #1 SMP Fri Jun 15 04:15:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux dovecot ?version 2.3.2 (582970113) # 2.3.2 (582970113): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.2 (7704de5e) # OS: Linux 3.10.0-862.3.3.el7.x86_64 x86_64 CentOS Linux release 7.5.1804 (Core) # Hostname: mailsrv01 auth_master_user_separator = * auth_verbose_passwords = sha1 default_client_limit = 2000 deliver_log_format = subject=%s from:%f sender:%e to: %{to_envelope} size:%p msgid=%m status=%$ delivery_time=%{delivery_time} session_time=%{session_time} disable_plaintext_auth = no doveadm_allowed_commands = quota get,dsync-server,kick,purge,fts rescan,altmove,mailbox list,expunge,mailbox status doveadm_password =? # hidden, use -P to show it lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lmtp_rcpt_check_quota = yes login_greeting = IMAP4. login_trusted_networks = x.x.x.x/24 mail_fsync = never mail_gid = xxx mail_location = mdbox:~/mdbox:ALT=/altstorage%h/mdbox mail_plugins = quota quota_clone fts fts_solr zlib mail_uid = xxx 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 duplicate vnd.dovecot .filter namespace inbox { ? inbox = yes ? list = yes ? location ? mailbox "Itens Enviados" { ??? auto = subscribe ??? special_use = \Sent ? } ? mailbox "Itens Exclu?dos" { ??? auto = subscribe ??? special_use = \Trash ? } ? mailbox Rascunhos { ??? auto = subscribe ??? special_use = \Drafts ? } ? mailbox Spam { ??? auto = subscribe ??? special_use = \Junk ? } ? prefix ? separator = . } passdb { ? args = /etc/dovecot/dovecot-ldap.conf.ext ? driver = ldap } plugin { ? fts = solr ? fts_solr = url=http://x.x.x.x:8983/solr/dovecot/ ? imapsieve_mailbox1_before = file:/etc/dovecot/antispam/report-spam.sieve ? imapsieve_mailbox1_causes = COPY ? imapsieve_mailbox1_name = Spam ? imapsieve_mailbox2_before = file:/etc/dovecot/antispam/report-ham.sieve ? imapsieve_mailbox2_causes = COPY ? imapsieve_mailbox2_from = Spam ? imapsieve_mailbox2_name = * ? last_login_dict = redis:host=x.x.x.x:port=6379 ? quota = count:User quota ? quota_clone_dict = redis:host=x.x.x.x:port=6379 ? quota_rule = *:bytes=0 ? quota_rule2 = Itens Exclu?dos:storage=+xM ? quota_vsizes = yes ? quota_warning = storage=95%% quota-warning 95 %u ? quota_warning2 = storage=80%% quota-warning 80 %u ? sieve = ~/.dovecot.sieve ? sieve_before = /etc/dovecot/sieve/audit.sieve ? sieve_before2 = /etc/dovecot/sieve/duplicate.sieve ? sieve_before3 = /etc/dovecot/sieve/spam.sieve ? sieve_dir = ~/sieve ? sieve_global_extensions = +vnd.dovecot.pipe ? sieve_pipe_bin_dir = /etc/dovecot/antispam ? sieve_plugins = sieve_imapsieve sieve_extprograms ? sieve_vacation_default_period = 7d ? sieve_vacation_max_period = 30d ? sieve_vacation_min_period = 1h } protocols = imap pop3 lmtp sieve service anvil { ? client_limit = 2000 } service auth { ? client_limit = 2000 } service doveadm { ? inet_listener { ??? port = 9011 ? } ? inet_listener http { ??? port = 9010 ? } ? vsz_limit = 768 M } service imap-login { ? process_limit = 800 ? process_min_avail = 200 ? service_count = 1 ? vsz_limit = 512 M } service imap-postlogin { ? executable = script-login dovecot-postlogin imap ? unix_listener imap-postlogin { ??? user = mail ? } ? user = $default_internal_user } service imap { ? executable = imap imap-postlogin ? process_limit = 20000 ? vsz_limit = 768 M } service indexer-worker { ? vsz_limit = 512 M } service lmtp { ? inet_listener lmtp { ??? address = * ??? port = 24 ? } ? vsz_limit = 512 M } service managesieve-login { ? inet_listener sieve { ??? port = 4190 ? } ? process_min_avail = 10 } service managesieve { ? process_limit = 512 } service pop3-postlogin { ? executable = script-login dovecot-postlogin pop3 ? unix_listener pop3-postlogin { ??? user = mail ? } ? user = $default_internal_user } service pop3 { ? executable = pop3 pop3-postlogin } service quota-warning { ? executable = script quota-warning ? unix_listener quota-warning { ??? user = mail ? } } service stats { ? chroot = empty ? client_limit = 20000 ? drop_priv_before_exec = no ? executable = stats ? extra_groups ? group ? idle_kill = 4294967295 secs ? privileged_group ? process_limit = 1 ? process_min_avail = 0 ? protocol ? service_count = 0 ? type ? unix_listener stats-reader { ??? group ??? mode = 0600 ??? user ? } ? unix_listener stats-writer { ??? group ??? mode = 0600 ? ??user ? } ? user = $default_internal_user ? vsz_limit = 18446744073709551615 B } ssl = no submission_host = x.x.x.x userdb { ? driver = prefetch } userdb { ? args = /etc/dovecot/dovecot-ldap.conf.ext ? driver = ldap } verbose_proctitle = yes protocol lda { ? mail_fsync = optimized ? mail_plugins = quota quota_clone sieve } protocol imap { ? imap_max_line_length = 128 k ? mail_max_userip_connections = 30 ? mail_plugins = quota quota_clone fts fts_solr zlib imap_quota last_login imap_sieve } protocol lmtp { ? mail_fsync = optimized ? mail_plugins = quota quota_clone sieve } protocol pop3 { ? mail_max_userip_connections = 10 ? mail_plugins = quota quota_clone fts fts_solr zlib last_login ? pop3_logout_format = in=%i out=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s ? pop3_no_flag_updates = yes ? pop3_save_uidl = yes ? pop3_uidl_format = %08Xu%08Xv } Regards, Ricardo
Ricardo Machini Barbosa skrev den 2018-07-03 04:04:> ? mail_plugins = quota quota_clone sieve } protocol imap {> ? mail_plugins = quota quota_clone sieve } protocol pop3 {protocol should not ne in middle of lines
Hi, Can you send me the Sieve scripts involved in this incident and an example message that triggers the problem? Regards, Stephan. Op 3-7-2018 om 4:04 schreef Ricardo Machini Barbosa:> Hello, > > I am getting crash on lmtp for specific message on dovecot 2.3.2 > See below the backtrace: > > Jul 02 22:54:20 Panic: lmtp(xxx)<172769><yL/kH0zXOlvhogIAF3haWw:3>: Buffer > write out of range (23153 + 18446744073709551614) > Jul 02 22:54:20 Error: lmtp(xxx)<172769><yL/kH0zXOlvhogIAF3haWw:3>: Raw > backtrace: /usr/lib64/dovecot/libdovecot.so.0(+0xcdfe4) [0x7f1fc8df9fe4] -> > /usr/lib64/dovecot/libdovecot.so.0(+0xce09e) [0x7f1fc8dfa09e] -> > /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f1fc8d69424] -> > /usr/lib64/dovecot/libdovecot.so.0(buffer_write+0xfc) [0x7f1fc8df425c] -> > /usr/lib64/dovecot/libdovecot-sieve.so.0(rfc2822_header_append+0xe7) > [0x7f1fc5dd1087] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(+0x5c01c) > [0x7f1fc5dac01c] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(+0x40219) > [0x7f1fc5d90219] -> > /usr/lib64/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x2ef) > [0x7f1fc5d91c2f] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(+0x525be) > [0x7f1fc5da25be] -> > /usr/lib64/dovecot/libdovecot-sieve.so.0(sieve_multiscript_run+0x96) > [0x7f1fc5da3456] -> /usr/lib64/dovecot/lib90_sieve_plugin.so(+0x3847) > [0x7f1fc6009847] -> > /usr/lib64/dovecot/libdovecot-lda.so.0(mail_deliver+0xec) [0x7f1fc93fff7c] > -> dovecot/lmtp [10.0.5.1 DATA](lmtp_local_data+0x6eb) [0x55f5bce9d97b] -> > dovecot/lmtp [10.0.5.1 DATA](cmd_data_continue+0x25d) [0x55f5bce9c48d] -> > /usr/lib64/dovecot/libdovecot.so.0(+0x4ffa2) [0x7f1fc8d7bfa2] -> > /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x65) [0x7f1fc8e11a75] -> > /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x10f) > [0x7f1fc8e1335f] -> > /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x52) > [0x7f1fc8e11b72] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) > [0x7f1fc8e11d98] -> > /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f1fc8d8d723] > -> dovecot/lmtp [10.0.5.1 DATA](main+0x229) [0x55f5bce9b4b9] -> > /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1fc8981445] -> dovecot/lmtp > [10.0.5.1 DATA](+0x55e5) [0x55f5bce9b5e5] > Jul 02 22:54:20 Fatal: lmtp(xxx)<172769><yL/kH0zXOlvhogIAF3haWw:3>: master: > service(lmtp): child 172769 killed with signal 6 (core dumps disabled - > https://dovecot.org/bugreport.html#coredumps) > > uname ?a > Linux mailsrv01 3.10.0-862.3.3.el7.x86_64 #1 SMP Fri Jun 15 04:15:27 UTC > 2018 x86_64 x86_64 x86_64 GNU/Linux > > dovecot ?version > 2.3.2 (582970113) > > # 2.3.2 (582970113): /etc/dovecot/dovecot.conf > # Pigeonhole version 0.5.2 (7704de5e) > # OS: Linux 3.10.0-862.3.3.el7.x86_64 x86_64 CentOS Linux release 7.5.1804 > (Core) > # Hostname: mailsrv01 > auth_master_user_separator = * auth_verbose_passwords = sha1 > default_client_limit = 2000 deliver_log_format = subject=%s from:%f > sender:%e to: %{to_envelope} size:%p msgid=%m status=%$ > delivery_time=%{delivery_time} session_time=%{session_time} > disable_plaintext_auth = no doveadm_allowed_commands = quota > get,dsync-server,kick,purge,fts rescan,altmove,mailbox list,expunge,mailbox > status doveadm_password =? # hidden, use -P to show it > lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes > lmtp_rcpt_check_quota = yes login_greeting = IMAP4. > login_trusted_networks = x.x.x.x/24 > mail_fsync = never > mail_gid = xxx > mail_location = mdbox:~/mdbox:ALT=/altstorage%h/mdbox > mail_plugins = quota quota_clone fts fts_solr zlib mail_uid = xxx > 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 duplicate vnd.dovecot > .filter namespace inbox { > ? inbox = yes > ? list = yes > ? location > ? mailbox "Itens Enviados" { > ??? auto = subscribe > ??? special_use = \Sent > ? } > ? mailbox "Itens Exclu?dos" { > ??? auto = subscribe > ??? special_use = \Trash > ? } > ? mailbox Rascunhos { > ??? auto = subscribe > ??? special_use = \Drafts > ? } > ? mailbox Spam { > ??? auto = subscribe > ??? special_use = \Junk > ? } > ? prefix > ? separator = . > } > passdb { > ? args = /etc/dovecot/dovecot-ldap.conf.ext > ? driver = ldap > } > plugin { > ? fts = solr > ? fts_solr = url=http://x.x.x.x:8983/solr/dovecot/ > ? imapsieve_mailbox1_before = file:/etc/dovecot/antispam/report-spam.sieve > ? imapsieve_mailbox1_causes = COPY > ? imapsieve_mailbox1_name = Spam > ? imapsieve_mailbox2_before = file:/etc/dovecot/antispam/report-ham.sieve > ? imapsieve_mailbox2_causes = COPY > ? imapsieve_mailbox2_from = Spam > ? imapsieve_mailbox2_name = * > ? last_login_dict = redis:host=x.x.x.x:port=6379 > ? quota = count:User quota > ? quota_clone_dict = redis:host=x.x.x.x:port=6379 > ? quota_rule = *:bytes=0 > ? quota_rule2 = Itens Exclu?dos:storage=+xM > ? quota_vsizes = yes > ? quota_warning = storage=95%% quota-warning 95 %u > ? quota_warning2 = storage=80%% quota-warning 80 %u > ? sieve = ~/.dovecot.sieve > ? sieve_before = /etc/dovecot/sieve/audit.sieve > ? sieve_before2 = /etc/dovecot/sieve/duplicate.sieve > ? sieve_before3 = /etc/dovecot/sieve/spam.sieve > ? sieve_dir = ~/sieve > ? sieve_global_extensions = +vnd.dovecot.pipe > ? sieve_pipe_bin_dir = /etc/dovecot/antispam > ? sieve_plugins = sieve_imapsieve sieve_extprograms > ? sieve_vacation_default_period = 7d > ? sieve_vacation_max_period = 30d > ? sieve_vacation_min_period = 1h > } > protocols = imap pop3 lmtp sieve > service anvil { > ? client_limit = 2000 > } > service auth { > ? client_limit = 2000 > } > service doveadm { > ? inet_listener { > ??? port = 9011 > ? } > ? inet_listener http { > ??? port = 9010 > ? } > ? vsz_limit = 768 M > } > service imap-login { > ? process_limit = 800 > ? process_min_avail = 200 > ? service_count = 1 > ? vsz_limit = 512 M > } > service imap-postlogin { > ? executable = script-login dovecot-postlogin imap > ? unix_listener imap-postlogin { > ??? user = mail > ? } > ? user = $default_internal_user > } > service imap { > ? executable = imap imap-postlogin > ? process_limit = 20000 > ? vsz_limit = 768 M > } > service indexer-worker { > ? vsz_limit = 512 M > } > service lmtp { > ? inet_listener lmtp { > ??? address = * > ??? port = 24 > ? } > ? vsz_limit = 512 M > } > service managesieve-login { > ? inet_listener sieve { > ??? port = 4190 > ? } > ? process_min_avail = 10 > } > service managesieve { > ? process_limit = 512 > } > service pop3-postlogin { > ? executable = script-login dovecot-postlogin pop3 > ? unix_listener pop3-postlogin { > ??? user = mail > ? } > ? user = $default_internal_user > } > service pop3 { > ? executable = pop3 pop3-postlogin > } > service quota-warning { > ? executable = script quota-warning > ? unix_listener quota-warning { > ??? user = mail > ? } > } > service stats { > ? chroot = empty > ? client_limit = 20000 > ? drop_priv_before_exec = no > ? executable = stats > ? extra_groups > ? group > ? idle_kill = 4294967295 secs > ? privileged_group > ? process_limit = 1 > ? process_min_avail = 0 > ? protocol > ? service_count = 0 > ? type > ? unix_listener stats-reader { > ??? group > ??? mode = 0600 > ??? user > ? } > ? unix_listener stats-writer { > ??? group > ??? mode = 0600 > ? ??user > ? } > ? user = $default_internal_user > ? vsz_limit = 18446744073709551615 B > } > ssl = no > submission_host = x.x.x.x > userdb { > ? driver = prefetch > } > userdb { > ? args = /etc/dovecot/dovecot-ldap.conf.ext > ? driver = ldap > } > verbose_proctitle = yes > protocol lda { > ? mail_fsync = optimized > ? mail_plugins = quota quota_clone sieve } protocol imap { > ? imap_max_line_length = 128 k > ? mail_max_userip_connections = 30 > ? mail_plugins = quota quota_clone fts fts_solr zlib imap_quota last_login > imap_sieve } protocol lmtp { > ? mail_fsync = optimized > ? mail_plugins = quota quota_clone sieve } protocol pop3 { > ? mail_max_userip_connections = 10 > ? mail_plugins = quota quota_clone fts fts_solr zlib last_login > ? pop3_logout_format = in=%i out=%o top=%t/%p, retr=%r/%b, del=%d/%m, > size=%s > ? pop3_no_flag_updates = yes > ? pop3_save_uidl = yes > ? pop3_uidl_format = %08Xu%08Xv > } > > Regards, > Ricardo > >