[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: