dovecot-lda 2.2.13 crashing when sieve_before used

Christoph Lechleitner christoph.lechleitner at iteg.at
Mon Aug 4 23:47:30 UTC 2014


Hi together!

We use dovecot under Debian wheezy amd64, using the repository ...
  deb http://xi.rename-it.nl/debian/ stable-auto/dovecot-2.2 main

Yesterday's routine upgrade to version 2:2.2.13-1~auto+130 (or some
other upgrade that came along from Debian?) introduced a problem with
mail delivery, which I was able to track down to a crash of dovecot-lda.

Whenever I do something like ...
/usr/lib/dovecot/dovecot-lda -d christoph.lechleitner at iteg.at <test.msg
... (with test.msg containing a raw e-mail message), dovecot-lda crashes.

The gdb backtrace is:

#0  buffer_free (_buf=_buf at entry=0x242eb20) at buffer.c:145
#1  0x00007f30d47ea4fd in array_free_i (array=0x242eb20) at
/build/dovecot-8Ko2hw/dovecot-2.2.13/src/lib/array.h:108
#2  sieve_file_script_sequence_destroy (seq=0x242eb10) at
sieve-file-script-sequence.c:242
#3  0x00007f30d47c963e in sieve_script_sequence_free
(_seq=_seq at entry=0x7fffe2dbe900) at sieve-script.c:686
#4  0x00007f30d4a3d4b3 in lda_sieve_multiscript_get_scripts
(svinst=svinst at entry=0x242abe0,
    label=label at entry=0x7f30d4a3e7c0 "sieve_before",
location=location at entry=0x2416500
"/etc/dovecot/sieve/discard-viruses.sieve",
    scripts=scripts at entry=0x7fffe2dbe9b0,
error_r=error_r at entry=0x7fffe2dbe998) at lda-sieve-plugin.c:271
#5  0x00007f30d4a3d7e5 in lda_sieve_find_scripts (srctx=0x7fffe2dbea40)
at lda-sieve-plugin.c:740
#6  lda_sieve_deliver_mail (mdctx=<optimized out>,
storage_r=0x7fffe2dbec00) at lda-sieve-plugin.c:973
#7  0x00007f30d5e05464 in mail_deliver (ctx=ctx at entry=0x7fffe2dbec70,
storage_r=storage_r at entry=0x7fffe2dbec00) at mail-deliver.c:400
#8  0x0000000000402a92 in main (argc=3, argv=0x2402390) at main.c:437


The problem vanishes once I remove the sieve_before script, in our case
/etc/dovecot/sieve/discard-viruses.sieve

The sieve script does not contain anything fancy, and it works perfectly
when used as sieve_default.

It seems the mere presence of a sieve_before script triggers the problem.


Some environment info:

As of dovecot -n, I guess only the sieve related parts are relevant, if
at all:
plugin {
  sieve = /var/vmail/%d/%n/sieve
  sieve_before = /etc/dovecot/sieve/discard-viruses.sieve
  sieve_default = /etc/dovecot/sieve/default.sieve
  sieve_dir = /var/vmail/%d/%n/sieve-scripts
}

I also tried version 2:2.2.13-1~auto+138 from the dovecot-2.2.patched
repository that I stumbled over while browsing the repository server. No
difference regarding our problem.

Our filesystem is ext4 disguised as simfs by the OpenVZ virtualization
kernel. I'm pretty sure the filesystem does not matter with our problem.


I'd be happy to re-test with testing releases, but I'd like to avoid
setting up a full-blown test environment where unstable and bleeding
edge versions would be ok.


Thanks in advance for any help,

Regards,

Christoph


-- 

Christoph Lechleitner

------------------------------------------------------------------------
ITEG IT-Engineers GmbH | Conradstr. 5, A-6020 Innsbruck
FN 365826f | Handelsgericht Innsbruck | Mobiltelefon: +43 699 12090423
Mail: christoph.lechleitner at iteg.at | Web: http://www.iteg.at/
------------------------------------------------------------------------



More information about the dovecot mailing list