xserver/dix
Peter Hutterer 0c4d7fca59 dix: block signals when closing all devices
When closing down all devices, we manually unset master for all attached
devices, but the device's sprite info still points to the master's sprite
info. This leaves us a window where the master is freed already but the
device isn't yet. A signal during that window causes dereference of the
already freed spriteInfo in mieqEnqueue's EnqueueScreen macro.

Simply block signals when removing all devices. It's not like we're really
worrying about high-responsive input at this stage.

https://bugzilla.redhat.com/show_bug.cgi?id=737031

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
(cherry picked from commit d7c44a7c97)
(cherry picked from commit 34bb83b9df)
2012-01-18 11:06:18 -08:00
..
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
atom.c Misc coding style cleanup 2010-05-13 06:16:48 +07:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c dix: fix memory leak in AllocShared 2011-04-04 17:27:12 +03:00
cursor.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
deprecated.c dix: Fix logic for displaying deprecation warning only once. 2010-12-07 18:42:45 +01:00
devices.c dix: block signals when closing all devices 2012-01-18 11:06:18 -08:00
dispatch.c Fix pixmap double-frees on error paths. 2011-10-18 09:13:25 -07:00
dispatch.h xserver: delete pervasively use of DISPATCH_PROC 2010-09-28 16:45:05 +03:00
dixfonts.c dixfonts: Don't overwrite local c variable until new_closure is safely initialized. 2011-10-09 01:36:54 -07:00
dixutils.c dix: optimize CallCallbacks 2010-10-13 09:24:06 -07:00
enterleave.c Use GetCurrentRootWindow or equivalent instead of spriteTrace[0]. 2010-10-13 15:58:12 +10:00
enterleave.h dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
eventconvert.c Fix unset valuator handling for XI 1.x valuator events again 2011-04-08 09:55:38 -04:00
events.c Remove the SendEvent bit (0x80) before doing range checks on event type. 2011-10-18 09:13:25 -07:00
extension.c dix: fix memory leak in ProcListExtensions 2011-04-04 17:27:12 +03:00
ffs.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
gc.c Un-export CreateScratchGC now that nothing external uses it. 2010-09-13 15:58:08 -07:00
getevents.c dix: only transform valuators when we need them. 2011-08-11 21:30:23 -07:00
globals.c dix: delete logo hack screen saver 2010-11-11 23:20:35 +02:00
glyphcurs.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
grabs.c Remove more superfluous if(p!=NULL) checks around free(p). 2010-11-11 08:29:54 +10:00
initatoms.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
inpututils.c input: add valuator_mask_free() to free a valuator mask. 2011-01-07 08:28:27 +10:00
main.c XQuartz: Don't call mieqEnqueue during server shutdown 2011-05-16 18:47:20 -07:00
Makefile.am dix: Fix make distcheck 2010-11-14 10:25:54 -08:00
pixmap.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
privates.c Add fence sync driver interface 2010-12-06 19:15:26 -08:00
property.c DIX: Reset window properties when freeing them 2010-12-31 12:52:50 +00:00
protocol.txt Add DRI2 requests to protocol.txt 2009-08-28 23:29:05 -04:00
ptrveloc.c dix: fix typo in direction calculation 2011-05-04 10:14:10 +10:00
region.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
registry.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
resource.c resource: Fix indentation 2011-01-20 21:08:17 -05:00
selection.c Fix property and selection devPrivate allocation. 2010-09-10 11:44:12 -07:00
swaprep.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
swapreq.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
tables.c dix: remove proc tables initialization 2010-09-28 16:46:46 +03:00
window.c DIX: Set backgroundState correctly for root window 2011-06-01 19:41:02 -07:00
Xserver-dtrace.h.in Sun's copyrights now belong to Oracle 2010-12-07 11:10:35 -08:00
Xserver.d Sun's copyrights now belong to Oracle 2010-12-07 11:10:35 -08:00