> I'll look into this today, I'm just rebuilding libc with my own version > of hooks for malloc so I can take a closer look at the exact failure. I > see it's not making it past some of the initial checks in > mem2chunk_check which could really mean a lot of different things.
glibc/malloc/malloc.c: --- /* Check if m has acceptable alignment */ #define aligned_OK(m) (((unsigned long)((m)) & (MALLOC_ALIGN_MASK)) == 0) --- HPPA has MALLOC_ALIGNMENT set to 16, which means that MALLOC_ALIGN_MASK is (16-1), 15, and thus: aligned_OK(m) returns 1 if the alignment is 0x?????0. aligned_OK(m) returns 0 if the alignment is 0x?????A where A!=0. The check code looks good: if(!aligned_OK(p)) return NULL; And the addresses that fail look like this: carlos@firin:~$ MALLOC_CHECK_=1 ./mtest malloc: using debugging hooks mem2chunk passed. free(): invalid pointer 0x21010! carlos@firin:~$ That address _is_ aligned, yet it doesn't pass the aligned_OK check, or it would have printed "aligned_OK passed." I'm rebuilding with some more checks in place. c. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]