Crash in sieve_extprogram_create() after dovecot/pigeonhole update

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Crash in sieve_extprogram_create() after dovecot/pigeonhole update

Oleksandr Natalenko
Hi all.

My dovecot setup:

pf@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


Reply | Threaded
Open this post in threaded view
|

Re: Crash in sieve_extprogram_create() after dovecot/pigeonhole update

Oleksandr Natalenko
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@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