libXi-1.3.2: SIGBUS in ParseClassInfo on sparc/64 bit
Nicolai Stange
nicolai.stange at zmaw.de
Thu Oct 14 04:23:01 PDT 2010
Hi everybody,
I've got a SIGBUS on sparc/64 bit in ParseClassInfo here:
XListDev.c:126: B->class = ButtonClass;
the reason is that B->class is an XID which is unsigned long which is
8byte here.
B points to an address not divisible by eight because there have been
some XAxisInfo's put before it in the *Any-Storage (in previous
iterations of the same loop).
sizeof(XAxisInfo)=3*sizeof(int) = 0x0C and thus, it breaks the alignment
at some point in *Any.
A quick fix that works here is to replace
int resolution
by
long resolution
in struct _XAxisInfo, XInput.h:809
Mabe you'd want to do some union magic here...
Regards
Nicolai
More information about the xorg
mailing list