Oleksandr Natalenko
2017-Dec-25 12:44 UTC
Crash in sieve_extprogram_create() after dovecot/pigeonhole update
Hi all. My dovecot setup: pf at vulcan:~ ? dovecot --version 2.3.0 (c8b89eb) on Arch Linux, x86_64 (full config here: [0]) uses sieve plugin to train rspamd system as described in the wiki [1]. It used to work fine prior to 2.3.0/0.5.0 update, but now "imap" process crashes when I move spam letters from the inbox to the junk folder. I've recompiled both dovecot and pigeonhole with debug symbols and got this stacktrace [2]. As you can see, it fails (with a SIGSEGV) in sieve_extprogram_create(), sieve- extprograms-common.c:562, which corresponds to this code: ==562 if ( !smtp_address_isnull(msgdata->envelope.rcpt_params->orcpt.addr) ) { 563 program_client_set_env 564 (sprog->program_client, "ORIG_RECIPIENT", 565 smtp_address_encode(msgdata->envelope.rcpt_params->orcpt.addr));566 } == When I dump msgdata structure, I see that rcpt_params is NULL: [3]. Thus, NULL pointer dereference occurs. Here is my report-spam.sieve file: [4] What I'm doing wrong here? Or is this some bug within pigeonhole? Could you please help me with resolving this? Thanks. [0] https://gist.github.com/92be2a4abe04149fd4b6971b6b4fa38d [1] https://wiki2.dovecot.org/HowTo/AntispamWithSieve [2] https://gist.github.com/8b202ebe9310845b59bcdeed7567026e [3] https://gist.github.com/a7e30b9e7a6c315d729bdcfe7142f532 [4] https://gist.github.com/fd1aa8943af106408a30155dffe052ab
Oleksandr Natalenko
2017-Dec-25 18:24 UTC
Crash in sieve_extprogram_create() after dovecot/pigeonhole update
The commit [1] fixes the issue, thanks. [1] https://github.com/stephanbosch/pigeonhole-core/commit/ 321a39be974deb2e7eff7b2a509a3ee6ff2e5ae1 On pond?l? 25. prosince 2017 13:44:12 CET Oleksandr Natalenko wrote:> Hi all. > > My dovecot setup: > > pf at vulcan:~ ? dovecot --version > 2.3.0 (c8b89eb) > > on Arch Linux, x86_64 (full config here: [0]) > > uses sieve plugin to train rspamd system as described in the wiki [1]. It > used to work fine prior to 2.3.0/0.5.0 update, but now "imap" process > crashes when I move spam letters from the inbox to the junk folder. > > I've recompiled both dovecot and pigeonhole with debug symbols and got this > stacktrace [2]. > > As you can see, it fails (with a SIGSEGV) in sieve_extprogram_create(), > sieve- extprograms-common.c:562, which corresponds to this code: > > ==> 562 if ( !smtp_address_isnull(msgdata->envelope.rcpt_params->orcpt.addr) > ) { > 563 program_client_set_env > 564 (sprog->program_client, "ORIG_RECIPIENT", > 565 smtp_address_encode(msgdata->envelope.rcpt_params- > > >orcpt.addr)); > > 566 } > ==> > When I dump msgdata structure, I see that rcpt_params is NULL: [3]. Thus, > NULL pointer dereference occurs. > > Here is my report-spam.sieve file: [4] > > What I'm doing wrong here? Or is this some bug within pigeonhole? Could you > please help me with resolving this? > > Thanks. > > [0] https://gist.github.com/92be2a4abe04149fd4b6971b6b4fa38d > [1] https://wiki2.dovecot.org/HowTo/AntispamWithSieve > [2] https://gist.github.com/8b202ebe9310845b59bcdeed7567026e > [3] https://gist.github.com/a7e30b9e7a6c315d729bdcfe7142f532 > [4] https://gist.github.com/fd1aa8943af106408a30155dffe052ab
Possibly Parallel Threads
- Sieve redirect is broken in 2.3.7.2 - signal 11
- Coredump: Panic: file smtp-address.c: line 530 (smtp_address_write): assertion failed: (smtp_char_is_qpair(*p))
- the list is back online
- sieve 0.1.2 problem with address and :regex
- Coredump: Panic: file smtp-address.c: line 530 (smtp_address_write): assertion failed: (smtp_char_is_qpair(*p))