libx11: Issues with Data32/_XData32

walter harms wharms at bfs.de
Tue Jan 24 10:53:21 UTC 2017



Am 24.01.2017 09:18, schrieb Julien Cristau:
> On Tue, Jan 24, 2017 at 01:12:23 +0000, James Clarke wrote:
> 
>> Hi,
>> I've been debugging an issue in gtk2-perl causing it to SIGBUS on
>> sparc64, and traced it back to what seems to be dodgy code inside
>> libx11. One of the tests calls gdk_window_set_opacity, which calls
>> XChangeProperty with a pointer to a guint32, cast to char*, with the
>> length set to 32 bits as expected. However, this data pointer then gets
>> cast to a (long *) on line 83 of ChProp.c when calling Data32. Indeed,
>> the definition of Data32 specifies that data is a (long *) on sparc64,
>> since LONG64 is defined. This feels very wrong, but in and of itself is
>> not too bad (I believe it violates strict aliasing).
>>
> As discussed on irc this sounds like a gtk bug, fixed by
> https://git.gnome.org/browse/gtk+/commit/?id=0e1a424829937abc27780da97a8bf60e81233d6c
> for gtk 3.
> 


I have read the page and found that sentence but i believe that it is realy hard to find
if you do not know where to look. I would suggest to add a small example to clarify the
problem.

re,
 wh


More information about the xorg-devel mailing list