touchscreen input crashes X - XI2 double free in DeactivatePointerGrab
original bug report to gtk+ https://gitlab.gnome.org/GNOME/gtk/issues/1389
Edit 2019-05-08
after using gdb to trace this bug it is caused by a double free (FreeGrab is called twice on the same grab) in /dix/events.c: DeactivatePointerGrab
DeactivatePointerGrab(DeviceIntPtr mouse)
{
GrabPtr grab = mouse->deviceGrab.grab;
DeviceIntPtr dev;
Bool wasPassive = mouse->deviceGrab.fromPassiveGrab;
Bool wasImplicit = (mouse->deviceGrab.fromPassiveGrab &&
mouse->deviceGrab.implicitGrab);
XID grab_resource = grab->resource;
int i;
/* If an explicit grab was deactivated, we must remove it from the
head of
* all the touches' listener lists. */
for (i = 0; !wasPassive && mouse->touch && i <
mouse->touch->num_touches; i++) {
TouchPointInfoPtr ti = mouse->touch->touches + i;
if (ti->active && TouchResourceIsOwner(ti, grab_resource)) {
int mode = XIRejectTouch;
/* Rejecting will generate a TouchEnd, but we must not
emulate a ButtonRelease here. So pretend the listener
already has the end event */
if (grab->grabtype == CORE || grab->grabtype == XI ||
!xi2mask_isset(mouse->deviceGrab.grab->xi2mask, mouse, XI_TouchBegin)) {
mode = XIAcceptTouch;
/* NOTE: we set the state here, but
* ProcessTouchOwnershipEvent() will still call
* TouchEmitTouchEnd for this listener. The other half of
* this hack is in DeliverTouchEndEvent */
ti->listeners[0].state = LISTENER_HAS_END;
}
>>>> TouchListenerAcceptReject(mouse, ti, 0, mode);
}
}
TouchRemovePointerGrab(mouse);
mouse->valuator->motionHintWindow = NullWindow;
mouse->deviceGrab.grab = NullGrab;
mouse->deviceGrab.sync.state = NOT_GRABBED;
mouse->deviceGrab.fromPassiveGrab = FALSE;
for (dev = inputInfo.devices; dev; dev = dev->next) {
if (dev->deviceGrab.sync.other == grab)
dev->deviceGrab.sync.other = NullGrab;
}
DoEnterLeaveEvents(mouse, mouse->id, grab->window,
mouse->spriteInfo->sprite->win, NotifyUngrab);
if (grab->confineTo)
ConfineCursorToWindow(mouse, GetCurrentRootWindow(mouse),
FALSE, FALSE);
PostNewCursor(mouse);
if (!wasImplicit && grab->grabtype == XI2)
ReattachToOldMaster(mouse);
ComputeFreezes();
>>FreeGrab(grab);
}
in one of the loop iterations TouchListenerAcceptReject() frees the grab and allocates a new grab at mouse->deviceGrab.grab however grab is not updated leading to a double free in FreeGrab(grab).
gdb logs of the double free.
Thread 1 "Xorg" hit Breakpoint 1, FreeGrab (pGrab=0x5578f7701910) at
../xorg-server-1.20.4/dix/grabs.c:255
255 BUG_RETURN(!pGrab);
#0 0x00005578f49f705d in FreeGrab (pGrab=0x5578f7701910) at
../xorg-server-1.20.4/dix/grabs.c:255
__func__ = "FreeGrab"
#1 0x00005578f49e0c6e in ActivatePointerGrab (mouse=0x5578f7198210,
grab=0x5578f76e44c0, time=..., autoGrab=129) at
../xorg-server-1.20.4/dix/events.c:1547
grabinfo = 0x5578f7198260
oldgrab = 0x5578f7701910
oldWin = 0x5578f765b2d0
isPassive = 1
#2 0x00005578f49e2009 in ActivateImplicitGrab (dev=0x5578f7198210,
client=0x5578f7429b70, win=0x5578f75d4d00, event=0x5578f736fbd0,
deliveryMask=12222716)
at ../xorg-server-1.20.4/dix/events.c:2069
tempGrab = 0x5578f76e44c0
inputMasks = 0x0
type = 4 '\004'
grabtype = CORE
#3 0x00005578f49e2797 in DeliverEventsToWindow (pDev=0x5578f7198210,
pWin=0x5578f75d4d00, pEvents=0x5578f736fbd0, count=1, filter=4, grab=0x0)
at ../xorg-server-1.20.4/dix/events.c:2300
deliveries = 1
nondeliveries = 0
client = 0x5578f7429b70
deliveryMask = 12222716
type = 4
#4 0x00005578f49e371f in DeliverEvent (dev=0x5578f7198210,
xE=0x5578f736fbd0, count=1, win=0x5578f75d4d00, child=0, grab=0x0)
at ../xorg-server-1.20.4/dix/events.c:2649
pSprite = 0x5578f71c9880
filter = 4
deliveries = 0
#5 0x00005578f49e3808 in DeliverOneEvent (event=0x7ffe485ae870,
dev=0x5578f7198210, level=CORE, win=0x5578f75d4d00, child=0, grab=0x0)
at ../xorg-server-1.20.4/dix/events.c:2681
xE = 0x5578f736fbd0
count = 1
deliveries = 0
rc = 0
__func__ = "DeliverOneEvent"
#6 0x00005578f49e39c8 in DeliverDeviceEvents (pWin=0x5578f75d4d00,
event=0x7ffe485ae870, grab=0x0, stopAt=0x5578f75d4d00, dev=0x5578f7198210)
at ../xorg-server-1.20.4/dix/events.c:2740
child = 0
deliveries = 0
mask = 2
#7 0x00005578f4aa22b7 in DeliverTouchEmulatedEvent
(dev=0x5578f7198210, ti=0x5578f7702640, ev=0x5578f7703900,
listener=0x5578f76cf770, client=0x5578f7429b70, win=0x5578f75d4d00,
grab=0x0, xi2mask=0x0)
at ../xorg-server-1.20.4/Xi/exevents.c:1437
devgrab = 0x5578f7701910
sprite_win = 0x5578f75d4d00
motion =
{any = {header = 255 '\377', type = ET_Motion, length =
432, time = 15484702}, device_event = {header = 255 '\377', type =
ET_Motion, length = 432, time = 15484702, deviceid = 2, sourceid = 13,
detail = {button = 0, key = 0}, touchid = 1, root_x = 420, root_x_frac =
0.71519953, root_y = 23, root_y_frac = 0.612341404, buttons = '\000'
<repeats 31 times>, valuators = {mask = "\003\000\000\000", mode =
"\003\000\000\000", data = {14360.412144323849, 1432.8318584070796, 0
<repeats 34 times>}}, mods = {base = 0, latched = 0, locked = 16,
effective = 16}, group = {base = 0 '\000', latched = 0 '\000', locked =
0 '\000', effective = 0 '\000'}, root = 362, corestate = 16, key_repeat
= 0, flags = 65536, resource = 56623224, source_type =
EVENT_SOURCE_NORMAL}, changed_event = {header = 255 '\377', type =
ET_Motion, length = 432, time = 15484702, deviceid = 2, flags = 13,
masterid = 0, sourceid = 1, buttons = {num_buttons = 420, names =
{1060575057, 23, 1058849384, 0, 0, 0, 0, 0, 0, 0, 0, 3, 768, 0, 0,
3240438805, 1087114292, 3534796093, 1083597651, 0 <repeats 70 times>,
16, 16, 0, 362, 16, 0, 65536, 56623224, 0 <repeats 75 times>, 362, 0, 0,
65536, 0, 0, 0, 65536, 0, 0, 0, 255, 4, 432, 15484702, 2, 13, 1, 1, 420,
1060575057, 23, 1058849384, 0, 0, 0, 0, 0, 0, 0, 0, 3, 768, 0, 0,
3240438805, 1087114292, 3534796093, 1083597651, 0 <repeats 45 times>}},
num_valuators = 0, valuators = {{min = 0, max = 0, value = 0, resolution
= 0, mode = 0 '\000', name = 0, scroll = {type = SCROLL_TYPE_NONE,
increment = 0, flags = 0}}, {min = 0, max = 0, value = 0, resolution =
0, mode = 0 '\000', name = 0, scroll = {type = SCROLL_TYPE_NONE,
increment = 0, flags = 0}}, {min = 0, max = 0, value =
3.2379086165851934e-319, resolution = 0, mode = 0 '\000', name = 0,
scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0,
max = 0, value = 0, resolution = 4105987086, mode = 120 'x', name = 0,
scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags = 16}}, {min =
1213915712, max = 32766, value = 6.9529913840723498e-310, resolution =
268422144, mode = 239 '\357', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 3.7054923438093491e-322, flags =
1213916576}}, {min = 1, max = 0, value = 7.9050503334599447e-323,
resolution = 0, mode = 0 '\000', name = 0, scroll = {type = 16,
increment = 6.9529913840865789e-310, flags = 1213915616}}, {min =
268422144, max = 1961141487, value = 0, resolution = 0, mode = 0 '\000',
name = 75, scroll = {type = 1213916672, increment =
4.9406564584124654e-324, flags = -1089692172}}, {min = 0, max = 0, value
= 6.719292783440953e-322, resolution = 0, mode = 0 '\000', name =
1213916384, scroll = {type = 4103620976, increment =
4.6431296182326437e-310, flags = 0}}, {min = 0, max = 1, value =
6.9529913841245232e-310, resolution = 4150081104, mode = 120 'x', name =
0, scroll = {type = 3205275124, increment = 0, flags = 136}}, {min = 0,
max = 0, value = 6.9529913841197801e-310, resolution = 4103620976, mode
= 120 'x', name = 4105276340, scroll = {type = SCROLL_TYPE_NONE,
increment = 2.1219957909652723e-314, flags = 1213916672}}, {min =
4150081104, max = 21880, value = 0, resolution = 0, mode = 0 '\000',
name = 0, scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags = 0}},
{min = 0, max = 0, value = 0, resolution = 0, mode = 0 '\000', name = 0,
scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0,
max = 0, value = 0, resolution = 0, mode = 0 '\000', name = 0, scroll =
{type = SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 4105987086,
max = 21880, value = 4.2439915819305446e-314, resolution = 0, mode = 0
'\000', name = 0, scroll = {type = 16, increment =
6.9529913841087131e-310, flags = 1213916064}}, {min = 268422144, max =
1961141487, value = 0, resolution = 0, mode = 0 '\000', name = 75,
scroll = {type = 1213917120, increment = 4.9406564584124654e-324, flags
= 4}}, {min = 0, max = 0, value = 0, resolution = 0, mode = 0 '\000',
name = 0, scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags = 0}},
{min = 0, max = 0, value = 0, resolution = 0, mode = 0 '\000', name = 0,
scroll = {type = 3205275124, increment = 0, flags = 136}}, {min = 0, max
= 0, value = 6.9529913841419143e-310, resolution = 4103620976, mode =
120 'x', name = 4105276340, scroll = {type = SCROLL_TYPE_NONE, increment
= 2.1219957909652723e-314, flags = -188436032}}, {min = 4148337632, max
= 21880, value = 6.9529913841118751e-310, resolution = 8399056, mode = 0
'\000', name = 4148337712, scroll = {type = 4143146528, increment =
6.9529913841174086e-310, flags = -190272924}}, {min = 1213916400, max =
32766, value = 6.9529913841245232e-310, resolution = 0, mode = 0 '\000',
name = 4106528880, scroll = {type = 4150081408, increment =
2.8764755468081378e-306, flags = 27}}, {min = 1213916576, max = 32766,
value = 4.6431314892685329e-310, resolution = 4148337712, mode = 120
'x', name = 4150547536, scroll = {type = 255, increment =
6.9529913841205706e-310, flags = -190994172}}, {min = 1213916576, max =
32766, value = 4.6431296801163421e-310, resolution = 4150018240, mode =
120 'x', name = 0, scroll = {type = 4106531264, increment =
4.6431314281553793e-310, flags = 1213916528}}, {min = 4104637226, max =
21880, value = 6.9529913841245232e-310, resolution = 4106528880, mode =
120 'x', name = 1213916832, scroll = {type = 4104640677, increment =
4.6431317129648568e-310, flags = -144886192}}, {min = 4151189472, max =
21880, value = 6.952991384126697e-310, resolution = 4139712768, mode =
120 'x', name = 56623224, scroll = {type = 4150086912, increment =
4.6429267906320158e-310, flags = 0}}, {min = 4194304, max = 0, value =
1.0185579799004822e-312, resolution = 1213916864, mode = 254 '\376',
name = 1213916656, scroll = {type = 268422144, increment =
6.9529913841300567e-310, flags = -155254528}}, {min = 56623224, max = 0,
value = 5.3049894823538372e-315, resolution = 4150086912, mode = 120
'x', name = 0, scroll = {type = 4147674192, increment =
6.9529913841427048e-310, flags = 0}}, {min = 4106528880, max = 21880,
value = 4.6431318318955485e-310, resolution = 4151189472, mode = 208
'\320', name = 27, scroll = {type = 1213916944, increment =
4.6431314892685329e-310, flags = -146629584}}, {min = 4150547536, max =
21880, value = 4.6431295364467953e-310, resolution = 1213916864, mode =
254 '\376', name = 4103973124, scroll = {type = 1213916944, increment =
2.1126856961950382e-313, flags = 1213916928}}, {min = 4104159783, max =
21880, value = 0, resolution = 4194304, mode = 0 '\000', name =
1213916896, scroll = {type = 4139712768, increment =
2.0043981967068292e-292, flags = 1213917144}}, {min = 1213917200, max =
0, value = 1.9697716888293148e-313, resolution = 1213916928, mode = 254
'\376', name = 4104153273, scroll = {type = 1213917056, increment =
4.6431295941854312e-310, flags = 1213917144}}, {min = 1213917136, max =
32766, value = 4.6431318828933998e-310, resolution = 1213917168, mode =
254 '\376', name = 4151322176, scroll = {type = 4145644048, increment =
1.0185579799004822e-312, flags = 1213917232}}, {min = 1213917024, max =
32766, value = 1.8062428172699362e-310, resolution = 0, mode = 0 '\000',
name = 0, scroll = {type = 79691776, increment = 1.210837699188e+255,
flags = 1213920720}}, {min = 4104791661, max = 21880, value =
4.6431318930324173e-310, resolution = 4151321632, mode = 120 'x', name =
4106531264, scroll = {type = 4151326976, increment =
4.6431318931992139e-310, flags = -149323248}}, {min = 4143146528, max =
21880, value = 4.6431314892685329e-310, resolution = 4150081376, mode =
120 'x', name = 4150637264, scroll = {type = 4151318800, increment =
4.6431318931723367e-310, flags = 255}}, {min = 432, max = 15484702,
value = 2.7585945283536671e-313, resolution = 0, mode = 1 '\001', name =
420, scroll = {type = 23, increment = 0, flags = 0}}, {min = 0, max = 0,
value = 0, resolution = 3, mode = 0 '\000', name = 0, scroll = {type =
3240438805, increment = 1432.8318584070796, flags = 0}}}, keys =
{min_keycode = 0, max_keycode = 0}}, touch_ownership_event = {header =
255 '\377', type = ET_Motion, length = 432, time = 15484702, deviceid =
2, sourceid = 13, touchid = 0, reason = 1 '\001', resource = 420, flags
= 1060575057}, barrier_event = {header = 255 '\377', type = ET_Motion,
length = 432, time = 15484702, deviceid = 2, sourceid = 13, barrierid =
0, window = 1, root = 420, dx = 0.00010970840230584176, dy = 0, root_x =
0, root_y = 0, dt = 0, event_id = 0, flags = 3}, dga_event = {header =
255 '\377', type = ET_Motion, length = 432, time = 15484702, subtype =
2, detail = 13, dx = 0, dy = 1, screen = 420, state = 5969}, raw_event =
{header = 255 '\377', type = ET_Motion, length = 432, time = 15484702,
deviceid = 2, sourceid = 13, detail = {button = 0, key = 0}, valuators =
{mask = "\244\001\000\000Q", data = {0.00010970840230584176, 0, 0, 0, 0,
1.6296927674628113e-311, 0, 14360.412144323849, 1432.8318584070796, 0
<repeats 27 times>}, data_raw = {0, 0, 0, 0, 0, 0, 0, 0,
3.3951932663349407e-313, 7.6816247632942858e-312,
7.9050503334599447e-323, 2.0043977189050206e-292, 0 <repeats 24
times>}}, flags = 0}}
button =
{any = {header = 255 '\377', type = ET_ButtonPress, length
= 432, time = 15484702}, device_event = {header = 255 '\377', type =
ET_ButtonPress, length = 432, time = 15484702, deviceid = 2, sourceid =
13, detail = {button = 1, key = 1}, touchid = 1, root_x = 420,
root_x_frac = 0.71519953, root_y = 23, root_y_frac = 0.612341404,
buttons = "\002", '\000' <repeats 30 times>, valuators = {mask =
"\003\000\000\000", mode = "\003\000\000\000", data =
{14360.412144323849, 1432.8318584070796, 0 <repeats 34 times>}}, mods =
{base = 0, latched = 0, locked = 16, effective = 16}, group = {base = 0
'\000', latched = 0 '\000', locked = 0 '\000', effective = 0 '\000'},
root = 362, corestate = 272, key_repeat = 0, flags = 65536, resource =
56623224, source_type = EVENT_SOURCE_NORMAL}, changed_event = {header =
255 '\377', type = ET_ButtonPress, length = 432, time = 15484702,
deviceid = 2, flags = 13, masterid = 1, sourceid = 1, buttons =
{num_buttons = 420, names = {1060575057, 23, 1058849384, 2, 0, 0, 0, 0,
0, 0, 0, 3, 768, 0, 0, 3240438805, 1087114292, 3534796093, 1083597651, 0
<repeats 70 times>, 16, 16, 0, 362, 272, 0, 65536, 56623224, 0, 0,
4145645024, 21880, 1213917920, 32766, 4145581104, 21880, 4145644048,
21880, 4105100079, 21880, 4103901640, 21880, 4148603056, 2, 4148603056,
21880, 0, 0, 4145581104, 21880, 1213917840, 32766, 4103988303, 21880,
1213921072, 32766, 268422144, 1961141487, 1213921024, 32766, 4103700031,
21880, 1213918064, 32766, 4139887088, 21880, 1213921072, 32766,
4148603056, 21880, 0, 0, 0, 0, 0, 0, 4145644048, 21880, 255, 8, 432,
15782414, 2, 13, 1, 1, 417, 1051460372, 10, 1039459246, 0, 0, 0, 0, 0,
0, 0, 0, 3, 768, 0, 0, 2731442974, 1087099528, 4256958736, 1082339472, 0
<repeats 70 times>, 16, 16, 0, 362, 16, 0, 36, 0, 0, 0, 0}},
num_valuators = 0, valuators = {{min = 0, max = 0, value = 0, resolution
= 0, mode = 0 '\000', name = 0, scroll = {type = SCROLL_TYPE_NONE,
increment = 0, flags = 0}}, {min = 0, max = 0, value = 0, resolution =
0, mode = 0 '\000', name = 0, scroll = {type = SCROLL_TYPE_NONE,
increment = 0, flags = 0}}, {min = 0, max = 0, value = 0, resolution =
0, mode = 0 '\000', name = 0, scroll = {type = SCROLL_TYPE_NONE,
increment = 0, flags = 0}}, {min = 0, max = 0, value = 0, resolution =
3, mode = 0 '\000', name = 0, scroll = {type = 3240438805, increment =
1432.8318584070796, flags = 0}}, {min = 0, max = 0, value = 0,
resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 16}}, {min = 0, max = 362,
value = 7.9050503334599447e-323, resolution = 32, mode = 0 '\000', name
= 0, scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min
= 0, max = 0, value = 0, resolution = 0, mode = 0 '\000', name = 0,
scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0,
max = 0, value = 0, resolution = 0, mode = 0 '\000', name = 0, scroll =
{type = SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0,
value = 0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
0, resolution = 0, mode = 0 '\000', name = 0, scroll = {type =
SCROLL_TYPE_NONE, increment = 6.9529913843379595e-310, flags =
-1090455376}}, {min = 7, max = 0, value = 0, resolution = 0, mode = 0
'\000', name = 2, scroll = {type = SCROLL_TYPE_NONE, increment =
6.9529913848715504e-310, flags = 1213931648}}, {min = 3655872, max = 0,
value = 7.797344022666553e-320, resolution = 255, mode = 0 '\000', name
= 1213925168, scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags =
-144607904}}, {min = 79691776, max = 0, value = 6.9529913843379595e-310,
resolution = 79691776, mode = 0 '\000', name = 0, scroll = {type =
4150359392, increment = 4.6431318828933998e-310, flags = 1213920880}},
{min = 4104089693, max = 21880, value = 6.3250283980596383e-320,
resolution = 51, mode = 0 '\000', name = 0, scroll = {type = 3,
increment = 0, flags = 0}}, {min = 1213919872, max = 32766, value =
4.643129570038121e-310, resolution = 4106586016, mode = 120 'x', name =
1213919808, scroll = {type = 1213919804, increment =
6.9529913842838099e-310, flags = 1213919796}}, {min = 4141769632, max =
21880, value = 6.9529913842810431e-310, resolution = 0, mode = 0 '\000',
name = 0, scroll = {type = 268422144, increment =
6.9529913842857862e-310, flags = -190649634}}, {min = 4106586016, max =
21880, value = 6.9529913842990271e-310, resolution = 1213920104, mode =
254 '\376', name = 4139887088, scroll = {type = 4106586016, increment =
9.4860604001519336e-321, flags = -188436032}}, {min = 4148337632, max =
21880, value = 6.9529913842865767e-310, resolution = 8399056, mode = 0
'\000', name = 4148337712, scroll = {type = 4143146528, increment =
6.9529913842921102e-310, flags = -190272924}}, {min = 895, max = 0,
value = 6.9529913842992248e-310, resolution = 0, mode = 0 '\000', name =
4106528880, scroll = {type = SCROLL_TYPE_NONE, increment =
2.8764729222799444e-306, flags = 27}}, {min = 1213920112, max = 32766,
value = 4.6431314892685329e-310, resolution = 4148337712, mode = 120
'x', name = 4150547536, scroll = {type = 255, increment =
6.9529913842952722e-310, flags = -190994172}}, {min = 1213920112, max =
32766, value = 4.6431296801163421e-310, resolution = 0, mode = 0 '\000',
name = 0, scroll = {type = SCROLL_TYPE_NONE, increment =
4.6431314281553793e-310, flags = 1213920064}}, {min = 4104637226, max =
21880, value = 6.9529913842992248e-310, resolution = 4106528880, mode =
120 'x', name = 1213920368, scroll = {type = 4104640677, increment =
2.3341953715439965e-313, flags = 70778880}}, {min = 30, max = 9, value =
6.9529913843013987e-310, resolution = 4139712768, mode = 120 'x', name =
56623224, scroll = {type = 4150086912, increment = 0, flags = 0}}, {min
= 4194304, max = 0, value = 1.0185579799004822e-312, resolution =
1213920400, mode = 254 '\376', name = 1213920192, scroll = {type =
268422144, increment = 1.6168125228484307e-314, flags = -155254528}},
{min = 56623224, max = 0, value = 5.3049894823538372e-315, resolution =
4150086912, mode = 120 'x', name = 0, scroll = {type = 1130823680,
increment = 0, flags = -1031368157}}, {min = 0, max = 0, value =
4.1445230292290475e-317, resolution = 0, mode = 0 '\000', name =
1213920320, scroll = {type = 4104102869, increment =
6.5701571058150275e-314, flags = 1213920512}}, {min = 1213921104, max =
32766, value = 4.643129559385374e-310, resolution = 1179670611, mode =
68 'D', name = 7, scroll = {type = 832, increment =
1.9097962118687451e-313, flags = 1213920464}}}, keys = {min_keycode =
-190807513, max_keycode = 21880}}, touch_ownership_event = {header = 255
'\377', type = ET_ButtonPress, length = 432, time = 15484702, deviceid =
2, sourceid = 13, touchid = 1, reason = 1 '\001', resource = 420, flags
= 1060575057}, barrier_event = {header = 255 '\377', type =
ET_ButtonPress, length = 432, time = 15484702, deviceid = 2, sourceid =
13, barrierid = 1, window = 1, root = 420, dx = 0.00010970840230584176,
dy = 9.8813129168249309e-324, root_x = 0, root_y = 0, dt = 0, event_id =
0, flags = 3}, dga_event = {header = 255 '\377', type = ET_ButtonPress,
length = 432, time = 15484702, subtype = 2, detail = 13, dx = 1, dy = 1,
screen = 420, state = 5969}, raw_event = {header = 255 '\377', type =
ET_ButtonPress, length = 432, time = 15484702, deviceid = 2, sourceid =
13, detail = {button = 1, key = 1}, valuators = {mask =
"\244\001\000\000Q", data = {0.00010970840230584176,
9.8813129168249309e-324, 0, 0, 0, 1.6296927674628113e-311, 0,
14360.412144323849, 1432.8318584070796, 0 <repeats 27 times>}, data_raw
= {0, 0, 0, 0, 0, 0, 0, 0, 3.3951932663349407e-313,
7.6816247632942858e-312, 1.3438585566881906e-321,
2.0043977189050206e-292, 0, 4.6431316127106369e-310,
6.9529913841909256e-310, 4.6431316095525693e-310,
4.6431316126624161e-310, 4.6431296095241932e-310,
4.6431295503134394e-310, 6.2936738301321537e-314,
4.643131758856836e-310, 0, 4.6431316095525693e-310,
6.952991384186973e-310, 4.6431295545951605e-310,
6.9529913843466551e-310, 1.210837699188e+255, 6.9529913843442836e-310,
4.6431295403526313e-310, 6.9529913841980401e-310,
4.6431313282308001e-310, 6.9529913843466551e-310,
4.643131758856836e-310, 0, 0, 0}}, flags = 4145644048}}
ptrev = 0x7ffe485ae870
nevents = 2
kbd = 0x5578f7188c30
__func__ = "DeliverTouchEmulatedEvent"
#8 0x00005578f4aa3574 in DeliverTouchBeginEvent
(dev=0x5578f7198210, ti=0x5578f7702640, ev=0x5578f7703900,
listener=0x5578f76cf770, client=0x5578f7429b70, win=0x5578f75d4d00,
grab=0x0, xi2mask=0x0)
at ../xorg-server-1.20.4/Xi/exevents.c:1890
state = 32766
rc = 0
has_ownershipmask = 32766
#9 0x00005578f4aa3a04 in DeliverTouchEvent
(dev=0x5578f7198210, ti=0x5578f7702640, ev=0x5578f7703900,
listener=0x5578f76cf770, client=0x5578f7429b70, win=0x5578f75d4d00,
grab=0x0, xi2mask=0x0)
at ../xorg-server-1.20.4/Xi/exevents.c:2017
has_ownershipmask = 0
rc = 0
#10 0x00005578f4aa3c15 in DeliverTouchEvents (dev=0x5578f7198210,
ti=0x5578f7702640, ev=0x5578f7703900, resource=56623224)
at ../xorg-server-1.20.4/Xi/exevents.c:2072
grab = 0x0
mask = 0x0
listener = 0x5578f76cf770
client = 0x5578f7429b70
win = 0x5578f75d4d00
i = 0
#11 0x00005578f4aa2a2e in ProcessTouchEvent (ev=0x5578f7703900,
dev=0x5578f7198210) at ../xorg-server-1.20.4/Xi/exevents.c:1626
t = 0x5578f76654e0
ti = 0x5578f7702640
touchid = 1
type = 7
emulate_pointer = 1
kbd = 0x5578f7188c30
#12 0x00005578f4aa34c2 in ProcessOtherEvent (ev=0x5578f7703900,
device=0x5578f7198210) at ../xorg-server-1.20.4/Xi/exevents.c:1861
#13 0x00005578f4a1069f in TouchEventHistoryReplay (ti=0x5578f7702640,
dev=0x5578f7198210, resource=56623224) at
../xorg-server-1.20.4/dix/touch.c:470
ev = 0x5578f7703900
i = 0
#14 0x00005578f4aa14aa in TouchPuntToNextOwner (dev=0x5578f7198210,
ti=0x5578f7702640, ev=0x5578f770e1d0) at
../xorg-server-1.20.4/Xi/exevents.c:1123
listener = 0x5578f76cf770
accepted_early = 0
#15 0x00005578f4aa16ab in TouchRejected (sourcedev=0x5578f7198210,
ti=0x5578f7702640, resource=79691776, ev=0x5578f770e1d0)
at ../xorg-server-1.20.4/Xi/exevents.c:1199
was_owner = 1
i = 0
#16 0x00005578f4aa1766 in ProcessTouchOwnershipEvent (ev=0x5578f770e1d0,
dev=0x5578f7198210) at ../xorg-server-1.20.4/Xi/exevents.c:1226
ti = 0x5578f7702640
#17 0x00005578f4aa34d7 in ProcessOtherEvent (ev=0x5578f770e1d0,
device=0x5578f7198210) at ../xorg-server-1.20.4/Xi/exevents.c:1866
#18 0x00005578f4aeddd8 in ProcessPointerEvent (ev=0x5578f770e1d0,
mouse=0x5578f7198210) at ../xorg-server-1.20.4/xkb/xkbAccessX.c:756
dev = 0x5578f7188c30
xkbi = 0x5578f718a4d0
changed = 0
backupproc = 0x5578f4aedb2f <ProcessPointerEvent>
xkbPrivPtr = 0x5578f71985e0
event = 0x5578f770e1d0
#19 0x00005578f4997e01 in mieqProcessDeviceEvent (dev=0x5578f7198210,
event=0x5578f770e1d0, screen=0x0) at ../xorg-server-1.20.4/mi/mieq.c:491
handler = 0x0
master = 0x0
mevent =
{any = {header = 14 '\016', type = 21880, length = 0, time
= 2}, device_event = {header = 14 '\016', type = 21880, length = 0, time
= 2, deviceid = 0, sourceid = 0, detail = {button = 0, key = 0}, touchid
= 0, root_x = 16, root_x_frac = 6.72623263e-44, root_y = -1712,
root_y_frac = 4.59149455e-41, buttons =
"\220\370ZH\376\177\000\000\000\314\377\017\357\244\344tp7]\367xU\000\000\270\370ZH\376\177\000",
valuators = {mask = ":\000\000\000", mode = "\000\000\000\260",
<incomplete sequence \374>, data = {4.9406564584124654e-324,
2.0722615146145237e-317, 4.6431296533481619e-310,
6.2944042172577138e-314, 6.9529913843695797e-310,
4.6431296159537659e-310, 1.0185579797423812e-312,
6.9529913843790658e-310, 6.9529913843695797e-310, 1.210837699188e+255,
6.9529913845253092e-310, 4.6431296167503974e-310, 2.86558074587923e-322,
6.952991384421753e-310, 4.9406564584124654e-324,
2.0722615146145237e-317, 2.7975530447296071e-316,
6.9529913844067334e-310, 2.5197347937903574e-322,
6.9529913844241246e-310, 4.6431296533481619e-310,
4.2442506146198714e-314, 6.9529913844162195e-310,
4.6431317532418787e-310, 1.0185579797423812e-312,
6.9529913843861803e-310, 6.9529913843766943e-310,
6.905557064591613e-310, 0, 1.5810100666919889e-322,
2.7975530447296071e-316, 6.952991384412267e-310,
1.2598673968951787e-321, 4.6431296182326437e-310,
2.1856495803350898e-317, 2.121995806775373e-314}}, mods = {base =
1213922592, latched = 32766, locked = 4148489408, effective = 21880},
group = {base = 255 '\377', latched = 0 '\000', locked = 0 '\000',
effective = 0 '\000'}, root = 0, corestate = -189690956, key_repeat =
21880, flags = 1213922624, resource = 32766, source_type = (unknown:
4148128608)}, changed_event = {header = 14 '\016', type = 21880, length
= 0, time = 2, deviceid = 0, flags = 0, masterid = 0, sourceid = 0,
buttons = {num_buttons = 16, names = {48, 1213921616, 32766, 1213921424,
32766, 268422144, 1961141487, 4150081392, 21880, 1213921464, 32766, 58,
0, 1213922480, 32766, 1, 0, 4194304, 0, 4105987086, 21880, 4150081376,
2, 1213921536, 32766, 4105230215, 21880, 16, 48, 1213921728, 32766,
1213921536, 32766, 268422144, 1961141487, 1213924688, 32766, 4105246339,
21880, 58, 0, 1213922592, 32766, 1, 0, 4194304, 0, 56623104, 0,
1213922288, 32766, 51, 0, 1213922640, 32766, 4105987086, 21880, 524288,
2, 1213922480, 32766, 4148489408, 21880, 16, 48, 1213921872, 32766,
1213921680, 32766, 3205275124, 32542, 0, 0, 32, 0, 56623104, 0,
1213922400, 32766, 255, 0, 4105276340, 21880, 4423804, 0, 32, 1,
1213922592, 32766, 4148489408, 21880, 255, 0, 4105276340, 21880,
1213922624, 32766, 4148128608, 1, 1213922640, 32766, 4141592080, 21880,
0, 0, 3205275124, 32542, 0, 0, 32, 0, 4423680, 0, 1213922544, 32766,
79691776, 0, 4105276340, 21880, 0, 0, 32, 1, 1213922736, 32766,
4150081104, 21880, 79691776, 0, 4105276340, 21880, 0, 0, 0, 1,
1213922784, 32766, 4150081104, 21880, 0 <repeats 62 times>, 4148337520,
21880, 0, 0, 4106589016, 21880, 0, 1, 4148782112, 21880, 1213922304,
32766, 4103973124, 21880, 4148337520, 21880, 4106589016, 21880,
4148337552, 21880, 4148337552, 21880, 1213922312, 32766, 4105234494,
21880, 4148337552, 21880, 4148337520, 21880, 0, 0, 4106589016, 21880,
1213922544, 1, 4148782112, 21880, 1213922416, 32766, 4103973124, 21880,
4148337520, 21880, 4106589016, 21880, 4148337552, 21880, 4148337552,
21880, 1213922424...}}, num_valuators = 21880, valuators = {{min =
1213922448, max = 32766, value = 4.6431296161736745e-310, resolution =
4148337520, mode = 120 'x', name = 1213922656, scroll = {type =
4105240460, increment = 6.7903865310888714e-313, flags = 1213924560}},
{min = 4148673504, max = 21880, value = 4.6431317457376145e-310,
resolution = 1213922560, mode = 1 '\001', name = 32, scroll = {type =
SCROLL_TYPE_NONE, increment = 0, flags = 0}}, {min = 0, max = 0, value =
1.5810100666919889e-322, resolution = 4147915168, mode = 120 'x', name =
4147674192, scroll = {type = 4148489408, increment =
6.9529913845189852e-310, flags = 0}}, {min = 1213924560, max = 32766,
value = 1.5810100666919889e-322, resolution = 1213922632, mode = 254
'\376', name = 4105234494, scroll = {type = 4148337552, increment =
4.6431296810673197e-310, flags = 1213922656}}, {min = 268422144, max =
1961141487, value = 6.9529913844328201e-310, resolution = 4105238867,
mode = 120 'x', name = 1213922720, scroll = {type = 1213924560,
increment = 6.7903865326698815e-313, flags = -146629776}}, {min =
4145644048, max = 21880, value = 1.3261815993345208e-315, resolution =
4147674192, mode = 120 'x', name = 1213924560, scroll = {type =
4148673504, increment = 4.6431296820902332e-310, flags = -146629776}},
{min = 1213924560, max = 32766, value = 1.5810100666919889e-322,
resolution = 4141585296, mode = 120 'x', name = 1213922816, scroll =
{type = SCROLL_TYPE_NONE, increment = 6.9529913844367726e-310, flags =
268422144}}, {min = 1213922976, max = 32766, value =
4.6431295573802085e-310, resolution = 1213922864, mode = 254 '\376',
name = 1213924560, scroll = {type = 1213922912, increment =
4.6431317457376145e-310, flags = 1213923168}}, {min = 1, max = 32, value
= 4.6431318287762157e-310, resolution = 4106568832, mode = 6 '\006',
name = 4148337520, scroll = {type = 1213924560, increment =
4.6429267906320652e-310, flags = -143874944}}, {min = 1213924560, max =
32766, value = 4.9406564584124654e-324, resolution = 1213923040, mode =
254 '\376', name = 268422144, scroll = {type = 40, increment =
1.210837699188e+255, flags = 1213923152}}, {min = 4104003085, max =
21880, value = 0, resolution = 4148337520, mode = 0 '\000', name =
14811184, scroll = {type = 1213924560, increment =
6.9529913844723454e-310, flags = -146629776}}, {min = 4150081376, max =
21880, value = 6.0015640568766576e-313, resolution = 1, mode = 120 'x',
name = 4151092352, scroll = {type = 1213924560, increment =
6.9529913845189852e-310, flags = -144885920}}, {min = 1213924560, max =
28, value = 6.9529913844502112e-310, resolution = 4103988736, mode = 120
'x', name = 1213923616, scroll = {type = 268422144, increment =
2.7975530447296071e-316, flags = 255}}, {min = 1213923280, max = 32766,
value = 4.6431295554084419e-310, resolution = 0, mode = 0 '\000', name =
4104004713, scroll = {type = 4194304, increment =
2.1240680524798868e-314, flags = 1213924560}}, {min = 4151092352, max =
21880, value = 0, resolution = 1213923616, mode = 254 '\376', name =
1213923408, scroll = {type = SCROLL_TYPE_NONE, increment =
2.1293134881539059e-314, flags = -146629776}}, {min = 79691776, max = 0,
value = 1.2598673968951787e-321, resolution = 1213923408, mode = 254
'\376', name = 4104005047, scroll = {type = SCROLL_TYPE_NONE, increment
= 6.9529913845189852e-310, flags = 1213923496}}, {min = 1213924560, max
= 32766, value = 6.9529913844628593e-310, resolution = 4104003213, mode
= 120 'x', name = 1213923520, scroll = {type = SCROLL_TYPE_NONE,
increment = 6.9529913845189852e-310, flags = -143874944}}, {min =
4148337520, max = 21880, value = 6.9529913844723454e-310, resolution =
4151224512, mode = 120 'x', name = 16763904, scroll = {type =
1213923552, increment = 4.6431295554410009e-310, flags = 1213923552}},
{min = 4104005527, max = 21880, value = 4.1725560768225698e-314,
resolution = 0, mode = 0 '\000', name = 4194304, scroll = {type =
1213924560, increment = 4.6431318818443996e-310, flags = 1213923616}},
{min = 4141599728, max = 28, value = 4.2513092791191782e-314, resolution
= 0, mode = 28 '\034', name = 0, scroll = {type = 4148337520, increment
= 1.210837699188e+255, flags = 0}}, {min = 4103620976, max = 21880,
value = 6.9529913845150326e-310, resolution = 4104010586, mode = 120
'x', name = 0, scroll = {type = 4150679984, increment =
6.9529913845189852e-310, flags = -143874944}}, {min = 1213924528, max =
1, value = 1.7800590868057738e-307, resolution = 0, mode = 0 '\000',
name = 0, scroll = {type = SCROLL_TYPE_NONE, increment = 0, flags =
32}}, {min = 4147915168, max = 21880, value = 4.6431317129648568e-310,
resolution = 4141592080, mode = 120 'x', name = 4150679984, scroll =
{type = SCROLL_TYPE_NONE, increment = 4.6431318614707134e-310, flags =
32}}, {min = 1213923736, max = 32766, value = 4.6431296161651766e-310,
resolution = 4106531264, mode = 120 'x', name = 4139712880, scroll =
{type = 1213923776, increment = 2.8480945388892178e-306, flags =
-151820768}}, {min = 4148271440, max = 21880, value =
6.9529913844849934e-310, resolution = 4104696330, mode = 120 'x', name =
0, scroll = {type = 1213924016, increment = 0, flags = -188438384}},
{min = 4147674192, max = 21880, value = 6.952991384492108e-310,
resolution = 4148271440, mode = 120 'x', name = 4143146528, scroll =
{type = 4106531264, increment = 4.6431318319010821e-310, flags =
1213923904}}, {min = 8399056, max = 32, value = 4.6431296802341274e-310,
resolution = 4150081488, mode = 120 'x', name = 1213923936, scroll =
{type = 8399056, increment = 4.6431318319050346e-310, flags =
-144885728}}, {min = 1213924048, max = 32766, value =
4.6431295894796041e-310, resolution = 1213924016, mode = 254 '\376',
name = 1213924192, scroll = {type = SCROLL_TYPE_NONE, increment =
4.6431296801163421e-310, flags = -144885728}}, {min = 4150081568, max =
8399056, value = 5.4323092250588421e-312, resolution = 3205274753, mode
= 30 '\036', name = 3206118048, scroll = {type = 376832, increment =
1.5257537648611039e-318, flags = -1090132499}}, {min = 4143146528, max =
21880, value = 6.9055570420828715e-310, resolution = 1213924144, mode =
254 '\376', name = 4151435264, scroll = {type = 308848, increment =
-na9529913845253092e-310, 4.6431296167503974e-310,
2.86558074587923e-322, 6.952991384421753e-310, 4.9406564584124654e-324,
2.0722615146145237e-317, 2.7975530447296071e-316,
6.9529913844067334e-310, 2.5197347937903574e-322,
6.9529913844241246e-310, 4.6431296533481619e-310,
4.2442506146198714e-314, 6.9529913844162195e-310,
4.6431317532418787e-310, 1.0185579797423812e-312,
6.9529913843861803e-310, 6.9529913843766943e-310,
6.905557064591613e-310, 0}, data_raw = {1.5810100666919889e-322,
2.7975530447296071e-316, 6.952991384412267e-310,
1.2598673968951787e-321, 4.6431296182326437e-310,
2.1856495803350898e-317, 2.121995806775373e-314, 6.952991384421753e-310,
4.6431317532418787e-310, 1.2598673968951787e-321,
4.6431296182326437e-310, 6.9529913844233341e-310,
4.1714436307093433e-314, 6.9529913844241246e-310,
4.6431314124685974e-310, 0, 6.905557064591613e-310, 0,
1.5810100666919889e-322, 2.1855883161950055e-317,
6.9529913844193815e-310, 3.9372968777675951e-316,
4.6431296182326437e-310, 0, 2.121995806775373e-314,
6.9529913844288676e-310, 4.64313183188211e-310, 3.9372968777675951e-316,
4.6431296182326437e-310, 0, 2.1219957909652723e-314,
6.9529913844312391e-310, 4.64313183188211e-310, 0, 0, 0}}, flags = 0}}
#20 0x00005578f4a11cf7 in TouchListenerAcceptReject (dev=0x5578f7198210,
ti=0x5578f7702640, listener=0, mode=7) at
../xorg-server-1.20.4/dix/touch.c:1005
events = 0x5578f770e1d0
nev = 1
i = 0
__func__ = "TouchListenerAcceptReject"
#21 0x00005578f49e0d8a in DeactivatePointerGrab (mouse=0x5578f7198210)
at ../xorg-server-1.20.4/dix/events.c:1584
mode = 7
ti = 0x5578f7702640
grab = 0x5578f7701910
dev = 0x9485b0528
wasPassive = 0
wasImplicit = 0
grab_resource = 79691776
i = 0
#22 0x00005578f4ab5747 in ProcXIUngrabDevice (client=0x5578f75d3760) at
../xorg-server-1.20.4/Xi/xigrabdev.c:169
dev = 0x5578f7198210
grab = 0x5578f7701910
ret = 0
time = {months = 0, milliseconds = 15782426}
stuff = 0x5578f76659ec
#23 0x00005578f4aa6af7 in ProcIDispatch (client=0x5578f75d3760) at
../xorg-server-1.20.4/Xi/extinit.c:398
stuff = 0x5578f76659ec
#24 0x00005578f49ca00b in Dispatch () at
../xorg-server-1.20.4/dix/dispatch.c:479
result = 0
client = 0x5578f75d3760
start_tick = 300
#25 0x00005578f49d91b9 in dix_main (argc=10, argv=0x7ffe485b0738,
envp=0x7ffe485b0790) at ../xorg-server-1.20.4/dix/main.c:276
i = 1
alwaysCheckForInput = {0, 1}
#26 0x00005578f4ba65da in main (argc=10, argv=0x7ffe485b0738,
envp=0x7ffe485b0790) at ../xorg-server-1.20.4/dix/stubmain.c:34
$6 = (GrabPtr) 0x5578f7701910
(gdb) cont
Continuing.
n(0xffffffffff000), flags = 0}}, {min = 3204812695, max = 32542, value =
0, resolution = 3206118144, mode = 30 '\036', name = 4150081568, scroll
= {type = 19299, increment = 6.905557106242335e-310, flags = 308816}},
{min = 0, max = 0, value = 6.905557106237592e-310, resolution = 256,
mode = 0 '\000', name = 3204823967, scroll = {type = 308800, increment =
1.0869444208507424e-322, flags = 7}}, {min = 0, max = 0, value =
6.9529314086829871e-310, resolution = 4139793192, mode = 120 'x', name =
308799, scroll = {type = 1, increment = 1.2598673968951787e-321, flags =
1213925168}}, {min = 1213924336, max = 32766, value =
6.9055570692167591e-310, resolution = 694, mode = 125 '}', name =
79691776, scroll = {type = 1213924368, increment =
4.6431296168556334e-310, flags = -191346320}}, {min = 4104066544, max =
21880, value = 7.797344022666553e-320, resolution = 426854797, mode = 26
'\032', name = 4151370192, scroll = {type = 4145644048, increment =
6.9529913845142421e-310, flags = -190884313}}, {min = 79691776, max = 0,
value = 5.9975837430864904e-315, resolution = 79691776, mode = 7 '\a',
name = 4151322176, scroll = {type = 4145644048, increment =
4.6431318955715195e-310, flags = 0}}}, keys = {min_keycode = 0,
max_keycode = 15782426}}, touch_ownership_event = {header = 14 '\016',
type = 21880, length = 0, time = 2, deviceid = 0, sourceid = 0, touchid
= 0, reason = 0 '\000', resource = 16, flags = 48}, barrier_event =
{header = 14 '\016', type = 21880, length = 0, time = 2, deviceid = 0,
sourceid = 0, barrierid = 0, window = 0, root = 16, dx =
6.9529913843735322e-310, dy = 6.9529913843640462e-310, root_x =
1.210837699188e+255, root_y = 4.643131831896339e-310, dt = -1864,
event_id = 32766, flags = 58}, dga_event = {header = 14 '\016', type =
21880, length = 0, time = 2, subtype = 0, detail = 0, dx = 0, dy = 0,
screen = 16, state = 48}, raw_event = {header = 14 '\016', type = 21880,
length = 0, time = 2, deviceid = 0, sourceid = 0, detail = {button = 0,
key = 0}, valuators = {mask = "\020\000\000\000\060", data =
{6.9529913843735322e-310, 6.9529913843640462e-310, 1.210837699188e+255,
4.643131831896339e-310, 6.9529913843660224e-310, 2.86558074587923e-322,
6.9529913844162195e-310, 4.9406564584124654e-324,
2.0722615146145237e-317, 4.6431296533481619e-310,
6.2944042172577138e-314, 6.9529913843695797e-310,
4.6431296159537659e-310, 1.0185579797423812e-312,
6.9529913843790658e-310, 6.9529913843695797e-310, 1.210837699188e+255,
6.9529913845253092e-310, 4.6431296167503974e-310, 2.86558074587923e-322,
6.952991384421753e-310, 4.9406564584124654e-324,
2.0722615146145237e-317, 2.7975530447296071e-316,
6.9529913844067334e-310, 2.5197347937903574e-322,
6.9529913844241246e-310, 4.6431296533481619e-310,
4.2442506146198714e-314, 6.9529913844162195e-310,
4.6431317532418787e-310, 1.0185579797423812e-312,
6.9529913843861803e-310, 6.9529913843766943e-310,
6.905557064591613e-310, 0}, data_raw = {1.5810100666919889e-322,
2.7975530447296071e-316, 6.952991384412267e-310,
1.2598673968951787e-321, 4.6431296182326437e-310,
2.1856495803350898e-317, 2.121995806775373e-314, 6.952991384421753e-310,
4.6431317532418787e-310, 1.2598673968951787e-321,
4.6431296182326437e-310, 6.9529913844233341e-310,
4.1714436307093433e-314, 6.9529913844241246e-310,
4.6431314124685974e-310, 0, 6.905557064591613e-310, 0,
1.5810100666919889e-322, 2.1855883161950055e-317,
6.9529913844193815e-310, 3.9372968777675951e-316,
4.6431296182326437e-310, 0, 2.121995806775373e-314,
6.9529913844288676e-310, 4.64313183188211e-310, 3.9372968777675951e-316,
4.6431296182326437e-310, 0, 2.1219957909652723e-314,
6.9529913844312391e-310, 4.64313183188211e-310, 0, 0, 0}}, flags = 0}}
#20 0x00005578f4a11cf7 in TouchListenerAcceptReject (dev=0x5578f7198210,
ti=0x5578f7702640, listener=0, mode=7) at
../xorg-server-1.20.4/dix/touch.c:1005
events = 0x5578f770e1d0
nev = 1
i = 0
__func__ = "TouchListenerAcceptReject"
#21 0x00005578f49e0d8a in DeactivatePointerGrab (mouse=0x5578f7198210)
at ../xorg-server-1.20.4/dix/events.c:1584
mode = 7
ti = 0x5578f7702640
grab = 0x5578f7701910
dev = 0x9485b0528
wasPassive = 0
wasImplicit = 0
grab_resource = 79691776
i = 0
#22 0x00005578f4ab5747 in ProcXIUngrabDevice (client=0x5578f75d3760) at
../xorg-server-1.20.4/Xi/xigrabdev.c:169
dev = 0x5578f7198210
grab = 0x5578f7701910
ret = 0
time = {months = 0, milliseconds = 15782426}
stuff = 0x5578f76659ec
#23 0x00005578f4aa6af7 in ProcIDispatch (client=0x5578f75d3760) at
../xorg-server-1.20.4/Xi/extinit.c:398
stuff = 0x5578f76659ec
#24 0x00005578f49ca00b in Dispatch () at
../xorg-server-1.20.4/dix/dispatch.c:479
result = 0
client = 0x5578f75d3760
start_tick = 300
#25 0x00005578f49d91b9 in dix_main (argc=10, argv=0x7ffe485b0738,
envp=0x7ffe485b0790) at ../xorg-server-1.20.4/dix/main.c:276
i = 1
alwaysCheckForInput = {0, 1}
#26 0x00005578f4ba65da in main (argc=10, argv=0x7ffe485b0738,
envp=0x7ffe485b0790) at ../xorg-server-1.20.4/dix/stubmain.c:34
$6 = (GrabPtr) 0x5578f7701910
Thread 1 "Xorg" hit Breakpoint 1, FreeGrab (pGrab=0x5578f7701910) at
../xorg-server-1.20.4/dix/grabs.c:255
255 BUG_RETURN(!pGrab);
#0 0x00005578f49f705d in FreeGrab (pGrab=0x5578f7701910) at
../xorg-server-1.20.4/dix/grabs.c:255
__func__ = "FreeGrab"
#1 0x00005578f49e0ee9 in DeactivatePointerGrab (mouse=0x5578f7198210)
at ../xorg-server-1.20.4/dix/events.c:1610
grab = 0x5578f7701910
dev = 0x0
wasPassive = 0
wasImplicit = 0
grab_resource = 79691776
i = 10
#2 0x00005578f4ab5747 in ProcXIUngrabDevice (client=0x5578f75d3760) at
../xorg-server-1.20.4/Xi/xigrabdev.c:169
dev = 0x5578f7198210
grab = 0x5578f7701910
ret = 0
time = {months = 0, milliseconds = 15782426}
stuff = 0x5578f76659ec
#3 0x00005578f4aa6af7 in ProcIDispatch (client=0x5578f75d3760) at
../xorg-server-1.20.4/Xi/extinit.c:398
stuff = 0x5578f76659ec
#4 0x00005578f49ca00b in Dispatch () at
../xorg-server-1.20.4/dix/dispatch.c:479
result = 0
client = 0x5578f75d3760
start_tick = 300
#5 0x00005578f49d91b9 in dix_main (argc=10, argv=0x7ffe485b0738,
envp=0x7ffe485b0790) at ../xorg-server-1.20.4/dix/main.c:276
i = 1
alwaysCheckForInput = {0, 1}
#6 0x00005578f4ba65da in main (argc=10, argv=0x7ffe485b0738,
envp=0x7ffe485b0790) at ../xorg-server-1.20.4/dix/stubmain.c:34
$9 = (GrabPtr) 0x5578f7701910
(gdb) cont
Continuing.
Thread 1 "Xorg" received signal SIGSEGV, Segmentation fault.
0x00007f1ebf05d141 in free () from /usr/lib/libc.so.6
Steps to reproduce
-
open a gtk3 application
-
open a menu
-
touch (with the touchscreen) the application titlebar or the start bar
-
X crashes instantly this behavior was found using the gtk demo application and in other gtk based applications.
however in firefox i noticed that this only happens when using xinput2, if not firefox calls gdk_disable_multidevice() and the crash does not happen
Version information
-
Xserver 1.19.6
-
XI version on server: 2.3
-
GTK+ 3.22.30
-
linux mint 19
Backtrace
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/xorg/Xorg...Reading symbols from /usr/lib/debug/.build-id/34/a9250370308d905838793061affea00de00ceb.debug...done.
done.
[New LWP 27990]
[New LWP 27993]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -noliste'.
Program terminated with signal SIGABRT, Aborted.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7fabc04d9600 (LWP 27990))]
(gdb) bt full
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
set = {__val = {171516928, 0, 0, 0, 0, 0, 94707062363680, 67108868, 140375599380624, 0, 0, 0, 0, 0, 0, 0}}
pid = <optimized out>
tid = <optimized out>
ret = <optimized out>
#1 0x00007fabbd804801 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {
0 <repeats 12 times>, 67108868, 140375599380624, 16997243486433269248, 0}}, sa_flags = 1,
sa_restorer = 0x7fffdba08ab0}
sigs = {__val = {32, 0 <repeats 15 times>}}
__cnt = <optimized out>
__set = <optimized out>
__cnt = <optimized out>
__set = <optimized out>
#2 0x00005622b4cf85aa in OsAbort () at ../../../../os/utils.c:1361
No locals.
#3 0x00005622b4bd038c in ddxGiveUp (error=error@entry=EXIT_ERR_ABORT)
at ../../../../../../hw/xfree86/common/xf86Init.c:1051
i = <optimized out>
#4 0x00005622b4bd0446 in AbortDDX (error=error@entry=EXIT_ERR_ABORT)
at ../../../../../../hw/xfree86/common/xf86Init.c:1095
i = <optimized out>
#5 0x00005622b4cfe0a2 in AbortServer () at ../../../../os/log.c:874
No locals.
#6 0x00005622b4cfeee5 in FatalError (f=f@entry=0x5622b4d32970 "Caught signal %d (%s). Server aborting\n")
at ../../../../os/log.c:1015
args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffdba08ba0, reg_save_area = 0x7fffdba08ad0}}
args2 = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 0x7fffdba08ba0, reg_save_area = 0x7fffdba08ad0}}
beenhere = 1
#7 0x00005622b4cf569e in OsSigHandler (signo=11, sip=<optimized out>, unused=<optimized out>)
at ../../../../os/osinit.c:154
unused = <optimized out>
sip = <optimized out>
signo = 11
#8 <signal handler called>
No locals.
#9 __GI___libc_free (mem=0x80) at malloc.c:3103
ar_ptr = <optimized out>
p = <optimized out>
hook = 0x0
mem = 0x80
ar_ptr = <optimized out>
p = <optimized out>
hook = <optimized out>
__x = <optimized out>
ar_ptr = <optimized out>
p = <optimized out>
hook = 0x0
__x = <optimized out>
#10 0x00005622b4ba90c4 in xi2mask_free (mask=mask@entry=0x5622b68b0b80) at ../../../../dix/inpututils.c:1100
No locals.
#11 0x00005622b4ba60a4 in FreeGrab (pGrab=0x5622b68b0b10) at ../../../../dix/grabs.c:263
No locals.
#12 0x00005622b4c8910b in ProcXIUngrabDevice (client=0x5622b6f37ba0) at ../../../../Xi/xigrabdev.c:169
dev = 0x5622b6017700
grab = 0x5622b68b0b10
ret = 0
time = <optimized out>
stuff = <optimized out>
#13 0x00005622b4b8be98 in Dispatch () at ../../../../dix/dispatch.c:479
result = <optimized out>
client = <optimized out>
start_tick = 57610
#14 0x00005622b4b8fee0 in dix_main (argc=11, argv=0x7fffdba093c8, envp=<optimized out>) at ../../../../dix/main.c:287
i = <optimized out>
alwaysCheckForInput = {0, 1}
#15 0x00007fabbd7e5b97 in __libc_start_main (main=0x5622b4b79b50 <main>, argc=11, argv=0x7fffdba093c8,
init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffdba093b8)
at ../csu/libc-start.c:310
self = <optimized out>
__self = <optimized out>
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -2770218526701926453, 94707060808544, 140736878121920, 0, 0,
-8487902057570121781, -8458842357984933941}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
0x7fabc02ef733 <_dl_init+259>, 0x7fabc02dd438}, data = {prev = 0x0, cleanup = 0x0,
canceltype = -1070663885}}}
not_first_call = <optimized out>
#16 0x00005622b4b79b8a in _start ()
No symbol table info available.
(gdb) thread apply all bt
Thread 2 (Thread 0x7fabb5d33700 (LWP 27993)):
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x00007fabbdbbf098 in __GI___pthread_mutex_lock (mutex=mutex@entry=0x5622b4f8a100 <input_mutex>)
at ../nptl/pthread_mutex_lock.c:113
#2 0x00005622b4cf3780 in input_lock () at ../../../../os/inputthread.c:113
#3 0x00005622b4cf3a11 in InputReady (fd=22, xevents=1, data=0x5622b620ff50) at ../../../../os/inputthread.c:178
#4 0x00005622b4cf6121 in ospoll_wait (ospoll=0x5622b6022420, timeout=timeout@entry=-1)
at ../../../../os/ospoll.c:412
#5 0x00005622b4cf386e in InputThreadDoWork (arg=<optimized out>) at ../../../../os/inputthread.c:367
#6 0x00007fabbdbbc6db in start_thread (arg=0x7fabb5d33700) at pthread_create.c:463
#7 0x00007fabbd8e588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7fabc04d9600 (LWP 27990)):
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007fabbd804801 in __GI_abort () at abort.c:79
#2 0x00005622b4cf85aa in OsAbort () at ../../../../os/utils.c:1361
#3 0x00005622b4bd038c in ddxGiveUp (error=error@entry=EXIT_ERR_ABORT)
at ../../../../../../hw/xfree86/common/xf86Init.c:1051
#4 0x00005622b4bd0446 in AbortDDX (error=error@entry=EXIT_ERR_ABORT)
at ../../../../../../hw/xfree86/common/xf86Init.c:1095
#5 0x00005622b4cfe0a2 in AbortServer () at ../../../../os/log.c:874
#6 0x00005622b4cfeee5 in FatalError (f=f@entry=0x5622b4d32970 "Caught signal %d (%s). Server aborting\n")
at ../../../../os/log.c:1015
#7 0x00005622b4cf569e in OsSigHandler (signo=11, sip=<optimized out>, unused=<optimized out>)
at ../../../../os/osinit.c:154
#8 <signal handler called>
#9 __GI___libc_free (mem=0x80) at malloc.c:3103
#10 0x00005622b4ba90c4 in xi2mask_free (mask=mask@entry=0x5622b68b0b80) at ../../../../dix/inpututils.c:1100
#11 0x00005622b4ba60a4 in FreeGrab (pGrab=0x5622b68b0b10) at ../../../../dix/grabs.c:263
#12 0x00005622b4c8910b in ProcXIUngrabDevice (client=0x5622b6f37ba0) at ../../../../Xi/xigrabdev.c:169
#13 0x00005622b4b8be98 in Dispatch () at ../../../../dix/dispatch.c:479
#14 0x00005622b4b8fee0 in dix_main (argc=11, argv=0x7fffdba093c8, envp=<optimized out>) at ../../../../dix/main.c:287
#15 0x00007fabbd7e5b97 in __libc_start_main (main=0x5622b4b79b50 <main>, argc=11, argv=0x7fffdba093c8,
init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffdba093b8)
at ../csu/libc-start.c:310
#16 0x00005622b4b79b8a in _start ()
(gdb) quit
please let me know if you need any additional information
i don't mind researching further if pointed in the right direction
examining other issues it may be related to #7 (closed)