dix: block signals when closing all devices
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 24 Oct 2011 02:00:32 +0000 (12:00 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Sun, 30 Oct 2011 23:39:04 +0000 (09:39 +1000)
commitd7c44a7c9760449bef263413ad3b20f19b1dc95a
treeb63a34c9911e48075721158267ba9a0f08ef4ae2
parent820d9040f50a8440741b3aefbc069a3ad81e824e
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>
dix/devices.c