[Dovecot] IMAP crashes with signal 10 (SIGBUS)

Joseph Tam tam at math.ubc.ca
Tue Jan 11 02:19:02 EET 2005


On Sat, 8 Jan 2005, Timo Sirainen wrote:

> 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..

Thanks, Timo.  If it helps, I traced the non-64 aligned value to this statement,

 	dovecot-1.0-test59/src/lib-index/mail-index-view.c:394
 		*data_r = offset == 0 ? NULL : CONST_PTR_OFFSET(rec, offset);
 		rec=ff2500bc offset=8 -> *data_r=ff2500c4

Joseph Tam <tam at math.ubc.ca>



More information about the dovecot mailing list