v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt

James list at xdrv.co.uk
Thu Sep 27 16:53:52 EEST 2018


On 27/09/2018 13:40, Stephan Bosch wrote:

>> Address   Line  Code
>> 00000000:       DEBUG BLOCK: 3
>> 00000001:       EXTENSIONS [1]:
>> 00000002:         vacation
>> 00000004:    2: VACATION
>> 00000007:    4:   seconds: NUM 5
>> 00000009:         Binary is corrupt.
>>
>> The line numbers differs and 86400 is read as 5.  It is like it has
>> forgotten the size of an integer or is confused about endianness.
>> There is something strange, like an #if that guesses wrong.  At least
>> I have somewhere to start looking.
>>
>> Thank you for checking at your end, I was worried the RC had
>> introduced an error and your result suggests not.  RCs are for testing
>> and I am.
>
> The number is stored as a chain of bytes of which the most significant
> bit indicates whether the next byte still belongs to the number. If this
> bit is somehow interpreted wrong, the first byte of this number would
> read as 5, thereby returning '5' as the result and ignoring subsequent
> bytes (causing corruption at the next item to read).
>
> Since you're using SunOS, your compiler may be doing something funky.
> Which compiler is used anyway? Perhaps different versions for the
> Dovecot releases that do and don't work?

It was studio cc.  gcc doesn't make it through configure and I didn't 
ask why.  I have some other things to do but will look at this again 
later.  Thank you for the byte code explanations.  The coding at this 
point is hard to follow with the pointers-to-functions and #defines.



James.



More information about the dovecot mailing list