Excessive Unaligned Accesses with recent glibc
Hi folks,
After upgrading to a more recent glibc (now running 2.3.5-6) I'm
seeing very many unaligned access messages from inside glibc to the
stack.
These appear mostly to be in the XDR code. Forcing a core dump with
prctl --unialigned=signal causes an immediate core-dump:
(gdb) where
#0 0x200000000032ba00 in xdr_uint8_t () from /lib/tls/libc.so.6.1
#1 0x200000000032c0b0 in xdr_uint8_t () from /lib/tls/libc.so.6.1
#2 0x2000000000327e80 in xdr_uint8_t () from /lib/tls/libc.so.6.1
#3 0x2000000000328590 in xdr_uint8_t () from /lib/tls/libc.so.6.1
#4 0x2000000000238620 in getpwuid_r () from /lib/tls/libc.so.6.1
#5 0x20000000002374a0 in getpwuid () from /lib/tls/libc.so.6.1
#6 0x40000000000211a0 in get_current_user_info ()
#7 0x4000000000024260 in main ()
(but I don't really trust the symbol names in this backtrace:
xdr_uint8_t should be a really small function)
Going from the syslog output, the actual faulting address is
0x200000000032ba01:
(gdb) x/i 0x200000000032ba01
0x200000000032ba01 <xdr_uint8_t+16817>: st8 [r18]=r17
(gdb) print/x $r18
$5 = 0x60000fffffb83664
and the value in r18 is 4-byte not 8-byte aligned.
--
Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au
The technical we do immediately, the political takes *forever*
Reply to: