Hello!
When I fetch certain emails from my Dovecot 2.2.16 server using Trojita 0.5,
dovecot/imap will crash reproducibly. Please find config and backtrace from
coredump attached.
Best regards,
Dennis
Core was generated by `dovecot/imap'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 i_stream_seek (stream=0x0, v_offset=3445) at istream.c:266
266 istream.c: No such file or directory.
(gdb) bt full
#0 i_stream_seek (stream=0x0, v_offset=3445) at istream.c:266
_stream = <optimized out>
#1 0x0000029fbb53c30c in index_mail_get_binary_stream (_mail=0x58cf332040, part=0x58cf353a20, include_hdr=<optimized out>, size_r=0x3d4a981bbf8, lines_r=<optimized out>,
binary_r=0x3d4a981bc30, stream_r=0x3d4a981bce0) at index-mail-binary.c:584
mail = 0x58cf332040
cache = 0x58cf1019d0
input = 0x3d4a981bb50
binary = false
converted = false
#2 0x0000029fbb4eac74 in mail_get_binary_stream (mail=mail@entry=0x58cf332040, part=part@entry=0x58cf353a20, include_hdr=include_hdr@entry=false, size_r=size_r@entry=0x3d4a981bbf8,
binary_r=binary_r@entry=0x3d4a981bc30, stream_r=stream_r@entry=0x3d4a981bce0) at mail.c:291
_data_stack_cur_id = 5
p = 0x58cf332040
ret = <optimized out>
#3 0x0000029fbb57bd80 in imap_msgpart_open (mail=0x58cf332040, msgpart=0x58cf171f20, result_r=result_r@entry=0x3d4a981bce0) at imap-msgpart.c:662
part = 0x58cf353a20
virtual_size = 676
include_hdr = false
binary = false
have_crlfs = <optimized out>
#4 0x00000058cb9466df in fetch_body_msgpart (ctx=0x58cf108be0, mail=<optimized out>, body=0x58cf109250) at imap-fetch-body.c:174
result = {input = 0x0, size = 0, size_field = (unknown: 0), binary_decoded_input_has_nuls = false}
str = 0x3d4a981bd64
#5 0x00000058cb944b64 in imap_fetch_more_int (ctx=ctx@entry=0x58cf108be0, cancel=false) at imap-fetch.c:506
h = <optimized out>
_data_stack_cur_id = 4
state = 0x58cf108c30
client = 0x58cf107ef0
count = <optimized out>
ret = <optimized out>
#6 0x00000058cb945d8f in imap_fetch_more (ctx=0x58cf108be0, cmd=cmd@entry=0x58cf108ad0) at imap-fetch.c:558
ret = <optimized out>
#7 0x00000058cb937cdb in cmd_fetch (cmd=0x58cf108ad0) at cmd-fetch.c:286
client = 0x58cf107ef0
ctx = 0x58cf108be0
args = 0x58cf0e7188
next_arg = <optimized out>
list_arg = 0x3d4a981bf40
search_args = 0x0
qresync_args = {qresync_sample_seqset = 0x58cf0db8e0, qresync_sample_uidset = 0xc2117932342dc00}
messageset = 0x58cf0e72f0 "3512"
---Type <return> to continue, or q <return> to quit---
send_vanished = <optimized out>
ret = <optimized out>
#8 0x00000058cb942ed6 in command_exec (cmd=cmd@entry=0x58cf108ad0) at imap-commands.c:158
hook = 0x58cf0e4770
ret = <optimized out>
#9 0x00000058cb941b91 in client_command_input (cmd=cmd@entry=0x58cf108ad0) at imap-client.c:782
client = 0x58cf107ef0
command = <optimized out>
#10 0x00000058cb941c18 in client_command_input (cmd=0x58cf108ad0) at imap-client.c:843
client = 0x58cf107ef0
command = <optimized out>
#11 0x00000058cb941f4d in client_handle_next_command (remove_io_r=<synthetic pointer>, client=0x58cf107ef0) at imap-client.c:881
No locals.
#12 client_handle_input (client=0x58cf107ef0) at imap-client.c:893
_data_stack_cur_id = 3
remove_io = false
handled_commands = false
#13 0x00000058cb9422ea in client_input (client=0x58cf107ef0) at imap-client.c:935
cmd = 0x58cf1089e0
output = 0x58cf10d220
bytes = 36
#14 0x0000029fbb25c54c in io_loop_call_io (io=0x58cf1089e0) at ioloop.c:501
ioloop = 0x58cf0e3dc0
t_id = 2
#15 0x0000029fbb25d94d in io_loop_handler_run_internal (ioloop=ioloop@entry=0x58cf0e3dc0) at ioloop-epoll.c:220
ctx = 0x58cf0e4ae0
list = 0x58cf0e6540
io = <optimized out>
tv = {tv_sec = 1799, tv_usec = 999599}
events_count = <optimized out>
msecs = <optimized out>
ret = 1
i = 0
call = <optimized out>
#16 0x0000029fbb25c5ef in io_loop_handler_run (ioloop=ioloop@entry=0x58cf0e3dc0) at ioloop.c:548
No locals.
#17 0x0000029fbb25c6a0 in io_loop_run (ioloop=0x58cf0e3dc0) at ioloop.c:525
No locals.
#18 0x0000029fbb1efb19 in master_service_run (service=0x58cf0e3c50, callback=<optimized out>) at master-service.c:569
No locals.
#19 0x00000058cb934a80 in main (argc=1, argv=0x58cf0e3a10) at main.c:412
---Type <return> to continue, or q <return> to quit---
set_roots = {0x58cbb599a0 <imap_setting_parser_info>, 0x0}
login_set = {auth_socket_path = 0x58cf0db6c8 "\001", postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, callback = 0x58cb94cb80 <login_client_connected>,
failure_callback = 0x58cb94c850 <login_client_failed>, request_auth_token = 1}
service_flags = <optimized out>
storage_service_flags = <optimized out>
username = 0x0
c = <optimized out>
# 2.2.16: /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.7
# OS: Linux 3.19.5-hardened x86_64 Gentoo Base System release 2.2 ext4
auth_mechanisms = plain login
auth_username_format = %Ln
dict {
acl_shared = file:/var/lib/dovecot/shared-acl
expire = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
mail_attribute = file:/var/lib/dovecot/mail-attribute
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
imap_metadata = yes
import_environment = LD_LIBRARY_PATH=/usr/lib/dovecot
mail_attribute_dict = proxy::mail_attribute
mail_location = mdbox:/var/mail/user/%u
mail_plugins = expire virtual zlib
mailbox_list_index = yes
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
spamtest
mdbox_preallocate_space = yes
namespace ns_default {
location =
mailbox drafts {
auto = subscribe
special_use = \Drafts
}
mailbox sent {
auto = subscribe
special_use = \Sent
}
mailbox spam {
auto = subscribe
special_use = \Junk
}
mailbox spam/ham {
auto = subscribe
}
mailbox spam/unsure {
auto = subscribe
}
mailbox trash {
auto = subscribe
special_use = \Trash
}
prefix =
separator = /
type = private
}
namespace ns_virtual {
inbox = yes
list = children
location =
virtual:/var/mail/virtual:INDEX=/var/mail/user-virtual/%u:CONTROL=/var/mail/user-virtual/%u
prefix = [virtual]/
separator = /
type = private
}
passdb {
args = *
driver = pam
}
plugin {
acl = vfile:/etc/dovecot/global-acls:cache_secs=300
acl_shared_dict = proxy::acl_shared
antispam_backend = dspam
antispam_dspam_args = --client;--user;%Lu;--source=error;--signature=%%s
antispam_dspam_binary = /usr/bin/dspamc
antispam_dspam_notspam = --class=innocent
antispam_dspam_result_header = X-DSPAM-Result
antispam_dspam_spam = --class=spam
antispam_signature = X-DSPAM-Signature
antispam_signature_missing = error
antispam_spam = spam
antispam_trash = trash
antispam_unsure = spam/unsure
expire = spam
expire2 = spam/ham
expire_dict = proxy::expire
sieve = file:/var/mail/user-sieve/%u;active=/var/mail/user-sieve/%u.sieve
sieve_after = /var/mail/sieve/after.d
sieve_before = /var/mail/sieve/before.d
sieve_extensions = +spamtest
sieve_global = /var/mail/sieve/global
sieve_spamtest_max_value = 1.0
sieve_spamtest_status_header = x-dspam-probability:
([[:digit:]]+.[[:digit:]]+)
sieve_spamtest_status_type = score
zlib_save = lz4
}
protocols = imap lmtp sieve
service auth {
unix_listener /var/spool/postfix/private/dovecot-auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-userdb {
group = mailusers
mode = 0660
}
}
service dict {
unix_listener dict {
group = mailusers
mode = 0660
}
}
service lmtp {
unix_listener /var/spool/dspam/dovecot-lmtp {
group = dspam
mode = 0660
user = dspam
}
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0660
user = postfix
}
}
ssl = required
ssl_cert = </etc/ssl/private/imap-combined.pem
ssl_key = </etc/ssl/private/imap-key.pem
userdb {
driver = passwd
}
protocol lmtp {
mail_plugins = expire virtual zlib sieve
}
protocol lda {
mail_plugins = expire virtual zlib sieve
}
protocol imap {
mail_plugins = expire virtual zlib antispam imap_zlib
}