sieve scripts not synching for 2.3.5.1 pre-built

Marc Weustink m.weustink at cuperus.nl
Wed Apr 3 11:20:57 EEST 2019


Timo Sirainen via dovecot wrote:
> On 2 Apr 2019, at 22.37, Timo Sirainen via dovecot <dovecot at dovecot.org 
> <mailto:dovecot at dovecot.org>> wrote:
>>
>> On 2 Apr 2019, at 17.03, Jan-Pieter Cornet via dovecot 
>> <dovecot at dovecot.org <mailto:dovecot at dovecot.org>> wrote:
>>>
>>> Hi,
>>>
>>> We're synching mailboxes, changing format from maildir to mdbox, 
>>> using doveadm backup/doveadm sync.
>>>
>>> When still running 2.2.36, 'doveadm backup' also synched the sieve 
>>> scripts, without issues.
>>>
>>> After the upgrade to 2.3.5.1, the sieve sync stopped working. We're 
>>> using the pre-built 2.3 packages from 
>>> https://repo.dovecot.org/ce-2.3-latest/debian/stretch
>>
>> Looks like this is trivial to reproduce. It used to work still in 
>> v2.3.1, but then something broke it. Tracking internally in DOP-1062.
> 
> Reverting 
> https://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844daccbfc0eb75f fixes 
> this.
> 

This is a change where strncmp() gets replaced by str_begins(). IMO a 
good change, however in src/lib-sieve/storage/file/sieve-file-storage-save.c

  strncmp(scriptname, fstorage->active_fname, namelen)

gets replaced by

  str_begins(fstorage->active_fname, scriptname)

Note that the arguments are swapped here, giving a false result.

Marc




More information about the dovecot mailing list