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
}

Reply via email to