[Dovecot] IMAP crashes with signal 10 (SIGBUS)

Timo Sirainen tss at iki.fi
Sat Jan 8 02:23:43 EET 2005


On 8.1.2005, at 01:59, Joseph Tam wrote:

> Subsequent versions still crashed and I looked into the problem 
> further.  Specifically it
> crashes at this line
>
>  	offset = *((const uint64_t *)data);
>
> when "data" assumes a non-64 bit aligned value.  At first I thought 
> that 64-bit
> ints should always be aligned on 64-bit boundaries, but when I 
> isolated this code
> into a standalone executable to demonstrate it (no arguments to cause 
> a crash, one
> argument is OK):

The bug is that the data pointer in there should always be 64bit 
aligned. There exists code which tries to keep it 64bit aligned, but 
apparently there's a bug somewhere. I haven't yet tried to find it. So 
many other things to do..

> They claim that this casting violates ISO aliasing rules and the 
> results like
> crashing are to be expected.  Maybe this statement ought to be 
> rewritten
>
>  	memcpy(&offset,data,sizeof(uint64_t));

That's a good workaround until it's really fixed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <http://dovecot.org/pipermail/dovecot/attachments/20050108/7108a8a6/attachment-0001.bin>


More information about the dovecot mailing list