James
2018-Oct-01 08:43 UTC
v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt
On 25/09/2018 22:39, Stephan Bosch wrote: Hello,> Something mightily weird is going on at your end. It doesn't fail hereThis is correct. I believe there to be a compiler problem. Removing optimisation from sieve-binary-code.c gives success. Thank you to Stephan Bosch for testing this for me and pointing me in the right direction. My debugging was confused because dovecot flags are passed to pigeonhole, eg $DOVECOT_CFLAGS. This is why the build of dovecot affects pigeonhole. Once I removed these I could control the pigeonhole build and I was able to isolate the problem. James.
Stephan Bosch
2018-Oct-01 12:37 UTC
v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt
Op 1-10-2018 om 10:43 schreef James:> On 25/09/2018 22:39, Stephan Bosch wrote: > > Hello, > >> Something mightily weird is going on at your end. It doesn't fail here > > This is correct.? I believe there to be a compiler problem. Removing > optimisation from sieve-binary-code.c gives success. > > Thank you to Stephan Bosch for testing this for me and pointing me in > the right direction. > > My debugging was confused because dovecot flags are passed to > pigeonhole, eg $DOVECOT_CFLAGS.? This is why the build of dovecot > affects pigeonhole.? Once I removed these I could control the > pigeonhole build and I was able to isolate the problem.Ok, good. I'd still like to know whether doing this helps somehow:> Does it help when you change the "> 0" at the following code position > to "!= 0" ? > > https://github.com/dovecot/pigeonhole/blob/master/src/lib-sieve/sieve-binary-code.c#L300Regards, Stephan.
James
2018-Oct-01 17:55 UTC
v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt
On 01/10/2018 13:37, Stephan Bosch wrote:> I'd still like to know whether doing this helps somehow: > >> Does it help when you change the "> 0" at the following code position >> to "!= 0" ? >> >> https://github.com/dovecot/pigeonhole/blob/master/src/lib-sieve/sieve-binary-code.c#L300--- ../original/src/lib-sieve/sieve-binary-code.c 2018-02-05 19:45:53.000000000 +0000 +++ src/lib-sieve/sieve-binary-code.c 2018-10-01 14:35:18.553169973 +0000 @@ -297,7 +297,7 @@ return FALSE; /* Read first integer bytes [1xxxxxxx] */ - while ( (ADDR_DATA_AT(address) & 0x80) > 0 ) { + while ( (ADDR_DATA_AT(address) & 0x80) != 0 ) { if ( ADDR_BYTES_LEFT(address) > 0 && bits > 0) { integer |= ADDR_DATA_AT(address) & 0x7F; ADDR_JUMP(address, 1); Quick reply: It does. I can't see why. James.
Possibly Parallel Threads
- v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt
- v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt
- v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt
- v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt
- v2.3.3 rc1 - Error: sieve: !!BUG!!: Binary compiled from dovecot.sieve is still corrupt