xserver/dix
Peter Hutterer ab76a3a3fc dix: always copy grabs, don't reference them
Introduced in xorg-server-1.13.99.901-2-g9ad0fdb. Storing the grab pointer
in the listener turns out to be a bad idea. If the grab is not an active
grab or an implicit grab, the pointer stored is the one to the grab attached
on the window. This grab may be removed if the client calls UngrabButton or
similar while the touch is still active, leaving a dangling pointer.

To avoid this, copy the grab wherever we need to reference it later. This
is also what we do for pointer/keyboard grabs, where we copy the grab as
soon as it becomes active.

Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 395124bd27)
2013-07-17 14:37:02 +10:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
atom.c Introduce a consistent coding style 2012-03-21 13:54:42 -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 Fix formatting of address operators 2012-12-05 18:09:48 -06:00
cursor.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
devices.c dix: drop DeviceIntRec's activeGrab struct 2013-07-17 14:35:46 +10:00
dispatch.c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
dispatch.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
dixfonts.c dix: fix redundant redeclaration warnings in dixfont 2012-11-05 13:24:59 -06:00
dixutils.c dix: introduce gpu screens. (v5) 2012-07-06 10:35:13 +01:00
enterleave.c input: drop FP1616 macro 2012-11-19 12:12:23 +10:00
enterleave.h dix: Move DeviceFocusEvent from Xi into enterleave.c 2012-05-17 08:50:44 +10:00
eventconvert.c dix: send the current axis value in DeviceChangedEvents (#62321) 2013-05-14 16:35:36 +10:00
events.c dix: always copy grabs, don't reference them 2013-07-17 14:37:02 +10:00
extension.c Use C99 designated initializers in dix Replies 2012-07-09 19:58:29 -07:00
ffs.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
gc.c Fix up formatting of initializers for arrays of structs 2012-08-06 15:22:53 -07:00
getevents.c Revert "dix: pre-scale x by the screen:device:resolution ratio" 2013-06-21 10:24:16 -06:00
globals.c os: Add -displayfd option 2012-05-01 11:36:30 +10:00
glyphcurs.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
grabs.c dix: AllocGrab can copy if an argument is passed in 2013-07-17 14:35:49 +10:00
initatoms.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
inpututils.c dix: split xi2_mask_isset into a per-device function 2012-12-12 17:25:16 +10:00
main.c Close GPU screens before core screens 2012-08-14 17:13:52 -07:00
Makefile.am input: add a TouchClassRec to the devices 2011-12-19 09:08:36 +10:00
pixmap.c pixmap: have slave pixmap take a reference on master pixmap 2012-08-07 08:25:06 +10:00
privates.c privates: Resize GPU screen-specific privates too 2012-07-09 16:30:24 -07:00
property.c Use C99 designated initializers in dix Events 2012-07-09 22:52:30 -07:00
protocol.txt Add DRI2 requests to protocol.txt 2009-08-28 23:29:05 -04:00
ptrveloc.c dix: unify prefix for ptraccel debugging in DebugAccelF macro 2013-02-08 14:00:56 +10:00
region.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
registry.c Use C99 designated initializers in dix registry 2012-07-09 22:52:30 -07:00
resource.c dix: add reference count of the resource to ResourceSizeRec 2012-04-18 12:49:11 +03:00
selection.c Use C99 designated initializers in dix Events 2012-07-09 22:52:30 -07:00
swaprep.c Remove unneccesary casts from WriteToClient calls 2012-07-09 19:12:56 -07:00
swapreq.c Use C99 designated initializers in dix Events 2012-07-09 22:52:30 -07:00
tables.c Make indentation of dix/tables.c much more consistent and readable 2012-08-06 15:22:53 -07:00
touch.c dix: always copy grabs, don't reference them 2013-07-17 14:37:02 +10:00
window.c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
Xserver-dtrace.h.in dix: add dtrace probes to input API 2012-03-22 11:33:42 +10:00
Xserver.d dix: add dtrace probes to input API 2012-03-22 11:33:42 +10:00