[cairo] cairo release 1.12.4 now available

Søren Sandmann sandmann at cs.au.dk
Fri Oct 5 11:31:29 PDT 2012


Chris Wilson <chris at chris-wilson.co.uk> writes:

> On Fri, 05 Oct 2012 19:42:26 +0200, sandmann at cs.au.dk (=?utf-8?Q?S=C3=B8ren?= Sandmann) wrote:
>> Chris Wilson <chris at chris-wilson.co.uk> writes:
>> 
>> > A new cairo release 1.12.4 is now available from:
>> >
>> > 	http://cairographics.org/releases/cairo-1.12.4.tar.xz
>> >
>> >     which can be verified with:
>> >
>> > 	http://cairographics.org/releases/cairo-1.12.4.tar.xz.sha1
>> > 	f4158981ed01e73c94fb8072074b17feee61a68b  cairo-1.12.4.tar.xz
>> >
>> > 	http://cairographics.org/releases/cairo-1.12.4.tar.xz.sha1.asc
>> > 	(signed by Chris Wilson)
>> 
>> This release crashes on all X servers prior to this commit:
>> 
>>     commit 2d2dce558d24eeea0eb011ec9ebaa6c5c2273c39
>>     Author: Sam Spilsbury <sam.spilsbury at canonical.com>
>>     Date:   Wed Sep 14 09:58:34 2011 +0800
>> 
>>         Remove the SendEvent bit (0x80) before doing range checks on event type.
>>     
>>         Some extension libraries may set this bit before converting the event to
>>         wire protocol and as such range checking the event will cause an invalid
>>         BadValue error to result. As the documentation suggests the the bit
>>         should be "forced on", remove it before doing range checks and continue
>>         to force it on in the server.
>>     
>>         Reviewed-by: Jamey Sharp <jamey at minilop.net>
>>         Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
>> 
>> due to the XSendEvent() in _cairo_xlib_shm_surface_mark_active().
>
> Hmm, that looks like a nasty unavoidable bug in xorg-1.11 and earlier.
> As XSendEvent is only used with ShmPixmaps we should be able to disable
> that path easily enough.

One note about the fix you just pushed: The XSendEvent() function in
xlib is virtualized such that each extension gets to do its own
processing. Some extensions, including shm, take this opportunity to set
the 0x80 bit, which is what's causing the issue. But it's not a bug in
XSendEvent() in general, so the code as it stands is a bit misleading.


Soren




More information about the cairo mailing list