Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • xserver xserver
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 946
    • Issues 946
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 121
    • Merge requests 121
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • xorgxorg
  • xserverxserver
  • Issues
  • #625
Closed
Open
Issue created Dec 27, 2018 by y paritcher@yparitcher

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

  1. open a gtk3 application

  2. open a menu

  3. touch (with the touchscreen) the application titlebar or the start bar

  4. 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)

Edited May 08, 2019 by y paritcher
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking