libXi issueshttps://gitlab.freedesktop.org/xorg/lib/libxi/-/issues2023-04-28T01:17:03Zhttps://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/15A potential NPD bug in src/XExtInt.c2023-04-28T01:17:03Zash1852A potential NPD bug in src/XExtInt.cHi, I found a potential null pointer dereference bug in the project source code of libXi, and I have shown the execution sequence of the program that may generate the bug on the graph below. would you help to check if this bug is true?th...Hi, I found a potential null pointer dereference bug in the project source code of libXi, and I have shown the execution sequence of the program that may generate the bug on the graph below. would you help to check if this bug is true?thank you.
The red text illustrates the steps that generate the bug
the red arrows represent the call relationships
the file path can be seen in the blue framed section.
![XAddExtension](/uploads/d6a8b17d29b95b7f9e5676aad73376d2/XAddExtension.jpg)
although source code in graph is not latest version,but such case is still exist in latest version.(
https://gitlab.freedesktop.org/xorg/lib/libxi/-/blob/master/src/XExtInt.c#L233)
I am looking forward to your reply and thank you for your patience and effort!https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/14A potential bug of NPD2022-08-25T16:40:35Zash1852A potential bug of NPDHi, I found a potential null pointer dereference bug in the project source code of libXi, and I have shown the execution sequence of the program that may generate the bug on the graph below. would you help to check if this bug is true?th...Hi, I found a potential null pointer dereference bug in the project source code of libXi, and I have shown the execution sequence of the program that may generate the bug on the graph below. would you help to check if this bug is true?thank you.
The red text illustrates the steps that generate the bug
the red arrows represent the call relationships
the green text represents some additional information to help understanding when the steps occur
the file path can be seen in the blue framed section.
![GetReq](/uploads/fdfc1f945c884dc0a3e89b94aa564bc8/GetReq.jpg)
although source code in graph is not latest version,but such case is still exist in latest version and similar usage of macro GetReq can be found in other file of project.
I am looking forward to your reply and thank you for your patience and effort!https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/13XInput2 does not repeat keystrokes for held-down keys2022-02-15T05:33:46ZDaniel Kahn GillmorXInput2 does not repeat keystrokes for held-down keysOver on https://bugs.debian.org/1004946, Jamie Zawinski describes moving XScreenSaver to XInput2 for better privilege separation, but then losing the ability to get automatic keystroke repeats when a key is held down.
This causes pretty...Over on https://bugs.debian.org/1004946, Jamie Zawinski describes moving XScreenSaver to XInput2 for better privilege separation, but then losing the ability to get automatic keystroke repeats when a key is held down.
This causes pretty surprising and unfriendly behavior in the XScreenSaver unlock screen, where it's now impossible for the user to hold down the backspace key to clear the password input field.
(i noticed this because this is a common use pattern for me, but i'm sure i'm not the only one)
Zawinski writes:
> When an X11 client reads X11-core events of type KeyPress and KeyRelease, a held-down key will result in a series of synthetic release/press events to make it look like the key was pressed multiple times. The initial delay and repeat rate are configured in the X server by xset and/or xkbset. Also, not all keys auto-repeat.
>
> When that same X11 client reads XInput2-extension events of type XI_RawKeyPress and XI_RawKeyRelease, a held-and-released key results in exactly 2 events, no matter how long it was held. The XInput2 server extension ignores the server auto-repeat settings.
>
> It is unreasonable to expect an X11 client to hack auto-repeat by itself. This is a server-side configuration issue.https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/12Xorg-server 21.0.99.2 crashes on intel Icelake and Tigerlake2021-07-06T10:15:35ZMark HerbertXorg-server 21.0.99.2 crashes on intel Icelake and TigerlakeReverting "modesetting: Use GAMMA_LUT when available" allows the Xorg server to start.Reverting "modesetting: Use GAMMA_LUT when available" allows the Xorg server to start.https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/11Ungrabbing slave keyboards causes X to crash2020-09-15T21:41:12ZRaheman VaiyaUngrabbing slave keyboards causes X to crashIt seems that attempting to ungrab an Xinput slave device while a different VT is active causes X to crash.
Compiling and running `test.c` and then switching VTs before it terminates causes X to crash with the following backtrace on my...It seems that attempting to ungrab an Xinput slave device while a different VT is active causes X to crash.
Compiling and running `test.c` and then switching VTs before it terminates causes X to crash with the following backtrace on my machine.
```
X.Org X Server 1.20.4
...
[1076359.609] (EE) Backtrace:
[1076359.610] (EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x139) [0x55555a6932c9]
[1076359.610] (EE) 1: /lib/x86_64-linux-gnu/libpthread.so.0 (funlockfile+0x50) [0x7f5231d3077f]
[1076359.610] (EE) 2: /usr/lib/xorg/Xorg (InitCallbackManager+0x1bb8) [0x55555a53ce18]
[1076359.610] (EE) 3: /usr/lib/xorg/Xorg (DeliverEvents+0x102d) [0x55555a54609d]
[1076359.610] (EE) 4: /usr/lib/xorg/Xorg (AssignTypeAndName+0x6e7c) [0x55555a62c74c]
[1076359.610] (EE) 5: /usr/lib/xorg/Xorg (SendErrorToClient+0x35e) [0x55555a5349ce]
[1076359.610] (EE) 6: /usr/lib/xorg/Xorg (InitFon[test.c](/uploads/189b2af7dea4b8d947e3d323993d612e/test.c)ts+0x3b6) [0x55555a538956]
[1076359.611] (EE) 7: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xeb)
[1076359.611] (EE) 8: /usr/lib/xorg/Xorg (_start+0x2a) [0x55555a52267a]
```
`test.c`
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
#include <sys/time.h>
#include <ctype.h>
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
#include <X11/extensions/XInput2.h>
#include <assert.h>
Display *dpy;
void grab(int devid)
{
size_t i;
XIEventMask mask;
mask.deviceid = XIAllDevices;
mask.mask_len = XIMaskLen(XI_LASTEVENT);
mask.mask = calloc(mask.mask_len, sizeof(char));
XISetMask(mask.mask, XI_KeyPress);
XISetMask(mask.mask, XI_KeyRelease);
if(XIGrabDevice(dpy, devid,
DefaultRootWindow(dpy),
CurrentTime,
None,
GrabModeAsync,
GrabModeAsync,
False, &mask)) {
fprintf(stderr, "FATAL: Failed to grab keyboard\n");
exit(-1);
}
XSync(dpy, False);
}
static int get_dev_id()
{
int i, n;
XIDeviceInfo* devs = XIQueryDevice(dpy, XIAllDevices, &n);
for (i = 0; i < n; i++) {
if (devs[i].use == XISlaveKeyboard &&
!strstr(devs[i].name, "XTEST")) {
printf("Grabbing %s\n", devs[i].name);
return devs[i].deviceid;
}
}
}
int main()
{
int i;
dpy = XOpenDisplay(NULL);
int id = get_dev_id();
grab(id);
sleep(3); //Switch vts here, observe crash
XIUngrabDevice(dpy, id, CurrentTime);
XSync(dpy, False);
}
```https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/10The macro FP3232_TO_DOUBLE always ignores the fractional part of number2019-06-19T16:42:01ZBugzilla Migration UserThe macro FP3232_TO_DOUBLE always ignores the fractional part of number## Submitted by bay
Assigned to **Xorg Project Team**
**[Link to original bug (#106663)](https://bugs.freedesktop.org/show_bug.cgi?id=106663)**
## Description
Hello,
The FP3232_TO_DOUBLE(x) is declared in XExtInt.c as:
#define FP...## Submitted by bay
Assigned to **Xorg Project Team**
**[Link to original bug (#106663)](https://bugs.freedesktop.org/show_bug.cgi?id=106663)**
## Description
Hello,
The FP3232_TO_DOUBLE(x) is declared in XExtInt.c as:
#define FP3232_TO_DOUBLE(x) ((double) (x).integral + (x).frac / (1ULL << 32))
The (x).frac is integer and (1ULL << 32) is also integer, to the result is also integer and zero.
The proposed fix is to convert (x).frac to double:
#define FP3232_TO_DOUBLE(x) ((double) (x).integral + (double) (x).frac / (1ULL << 32))
Also the fractional values are ignored in copy_classes function and there is a
/* FIXME: fractional parts */
there.
The fix is trivial:
Instead of:
cls_lib->min = cls_wire->min.integral;
cls_lib->max = cls_wire->max.integral;
cls_lib->value = cls_wire->value.integral;
/* FIXME: fractional parts */
Could be replaced by:
cls_lib->min = FP3232_TO_DOUBLE(cls_wire->min);
cls_lib->max = FP3232_TO_DOUBLE(cls_wire->max);
cls_lib->value = FP3232_TO_DOUBLE(cls_wire->value);
This fixes glitchy scrolling in Qt applications when the application was just activated or was scrolled in the backgroud. Qt is using XIQueryDevice call to synchronize internal scroll location with an actual one (QXcbConnection::xi2HandleDeviceChangedEvent and QXcbConnection::updateScrollingDevice functions in http://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp)
The patch is attached
Best,
Alexander Bersenev
Version: githttps://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/9Attempt to modify device proximity field for non-proximity input device cause...2023-04-28T01:15:29ZBugzilla Migration UserAttempt to modify device proximity field for non-proximity input device causes segmentation fault using Wacom tablet## Submitted by Steve Holland
Assigned to **Xorg Project Team**
**[Link to original bug (#100921)](https://bugs.freedesktop.org/show_bug.cgi?id=100921)**
## Description
Observed on xorg-1.19.3-1 (Fedora 25):
Symptom: Occasional ...## Submitted by Steve Holland
Assigned to **Xorg Project Team**
**[Link to original bug (#100921)](https://bugs.freedesktop.org/show_bug.cgi?id=100921)**
## Description
Observed on xorg-1.19.3-1 (Fedora 25):
Symptom: Occasional Xorg server crashes when using a Wacom tablet (Built into Lenovo Thinkpad S1 Yoga in my case). It seems to be a random issue that occurs roughly every hour of tablet use.
(Might be a dup of Bug #99556 -- but that report doesn't have enough detail to confirm)
I have been able to obtain a core dump and gdb backtrace:
```
(gdb) where
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#1 0x00007f6ec04b851a in __GI_abort () at abort.c:89
#2 0x00000000005a16be in OsAbort () at utils.c:1355
#3 0x00000000005a7243 in AbortServer () at log.c:877
#4 0x00000000005a802d in FatalError (f=f@entry=0x5d57d0 "Caught signal %d (%s). Server aborting\n") at log.c:1015
#5 0x000000000059e95e in OsSigHandler (signo=11, sip=<optimized out>, unused=<optimized out>) at osinit.c:154
#6 <signal handler called>
#7 UpdateDeviceState (device=0x20fb4b0, event=0x7fff96551190) at exevents.c:931
#8 0x0000000000528ce0 in ProcessDeviceEvent (ev=ev@entry=0x7fff96551190, device=device@entry=0x20fb4b0) at exevents.c:1709
#9 0x000000000052948b in ProcessOtherEvent (ev=0x7fff96551190, device=0x20fb4b0) at exevents.c:1873
#10 0x000000000054e0d2 in ProcessPointerEvent (ev=0x7fff96551190, mouse=0x20fb4b0) at xkbAccessX.c:756
#11 0x000000000057d612 in mieqProcessDeviceEvent (dev=0x22fd630, event=0x7fff96551df0, screen=0x1eb8cb0) at mieq.c:496
#12 0x000000000057d749 in mieqProcessInputEvents () at mieq.c:551
#13 0x0000000000479289 in ProcessInputEvents () at xf86Events.c:165
#14 0x0000000000436e16 in Dispatch () at dispatch.c:418
#15 0x000000000043b078 in dix_main (argc=15, argv=0x7fff96552c08, envp=<optimized out>) at main.c:287
#16 0x00007f6ec04a1401 in __libc_start_main (main=0x424d20 <main>, argc=15, argv=0x7fff96552c08, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fff96552bf8) at ../csu/libc-start.c:289
#17 0x0000000000424d5a in _start ()
```
The coredump occurs in exevents.c:UpdateDeviceState():
930: else if (event->type == ET_ProximityOut)
931: device->proximity->in_proximity = FALSE;
device->proximity is NULL hence attempting to set its in_proximity member causes a segmentation violation.
How did device->proximity turn out to be NULL for a ProximityOut event?
Let's go up a few levels and look at mieq.c:mieqProcessDeviceEvent():
490: /* process slave first, then master */
491: dev->public.processInputProc(event, dev);
492:
493: /* Check for the SD's master in case the device got detached
494: * during event processing */
495: if (master && !IsFloating(dev))
496: master->public.processInputProc(&mevent, master);
dev->proximity is a valid pointer, but master->proximity is NULL
So it is processed OK on line 491 but the processInputProc() call on line 496 provides an ET_ProximityOut event with a device where proximity is NULL. And after a few layers this turns into the call to UpdateDeviceState() above, which attempts to set the in_proximity field unconditionally.
Possible Fix: Perhaps check for device->proximity being NULL in UpdateDeviceState()?https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/8gtk2 application segfault with libxi 1.7.72021-06-01T11:38:52ZBugzilla Migration Usergtk2 application segfault with libxi 1.7.7## Submitted by j.w..@..il.com
Assigned to **Xorg Project Team**
**[Link to original bug (#98204)](https://bugs.freedesktop.org/show_bug.cgi?id=98204)**
## Description
Since libxi 1.7.7 GTK2 applications crash when certain input d...## Submitted by j.w..@..il.com
Assigned to **Xorg Project Team**
**[Link to original bug (#98204)](https://bugs.freedesktop.org/show_bug.cgi?id=98204)**
## Description
Since libxi 1.7.7 GTK2 applications crash when certain input devices are plugged in. At least some Wacom tablets and Microsoft game controllers trigger a segmentation fault. Removing lines 224 and 225 from src/XListDev.c:XListInputDevices
if (!s)
goto out;
prevents the error from happening. These lines were added in commit 19a9cd6, the only commit from 1.7.6 to 1.7.7.
Mentions:
https://bugs.archlinux.org/task/51298
https://bbs.archlinux.org/viewtopic.php?pid=1659799
https://lwn.net/Articles/703097/https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/7[BSW] [Fedora 24] google-earth crash after open it2019-06-06T21:53:47ZBugzilla Migration User[BSW] [Fedora 24] google-earth crash after open it## Submitted by Humberto Israel Perez Rodriguez
Assigned to **Xorg Project Team**
**[Link to original bug (#97281)](https://bugs.freedesktop.org/show_bug.cgi?id=97281)**
## Description
Created attachment 125674
dmesg
Bug Descript...## Submitted by Humberto Israel Perez Rodriguez
Assigned to **Xorg Project Team**
**[Link to original bug (#97281)](https://bugs.freedesktop.org/show_bug.cgi?id=97281)**
## Description
Created attachment 125674
dmesg
Bug Description :
============================================
google-earth crash after open it
Steps to reproduce :
============================================
1-Install google earth 64bit
2-Open google earth from terminal o dashboard
Actual results :
============================================
After step 2 google-earth crash
Expected results :
============================================
Google-earth should run without any issues
Software information
============================================
Fedora 24 64bit
Kernel :4.6.5-300.fc24.x86_64
Mesa: 12.0.1
xorg : 2.99.917
libdrm : 2.4.70
libva : 1.7.1
intel-driver : 1.7.1
cairo : 1.15.2
Hardware information
============================================
Platform : BSW
Motherboard model : 10G9000NUS
Motherboard type : BRASWELL Desktop
Motherboard manufacturer : LENOVO
CPU family : Pentium
CPU information : Intel(R) Pentium(R) CPU N3700 @ 1.60GHz
GPU Card : Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 21) (prog-if 00 [VGA controller])
CPU's number : 4
Console output :
============================================
(12:10 PM) [gfx@localhost] [hola]$ : google-earth
[0810/121042:ERROR:net_util.cc(2195)] Not implemented reached in bool net::HaveOnlyLoopbackAddresses()
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121043:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121044:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121044:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121044:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121044:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121045:WARNING:backend_impl.cc(1875)] Destroying invalid entry.
[0810/121045:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121045:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121045:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121045:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/121046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161046:WARNING:backend_impl.cc(1875)] Destroying invalid entry.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0810/161047:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
Another crash happened while handling crash!
Attachments :
============================================
dmesg
**Attachment 125674**, "dmesg":
[dmesg](/uploads/b4e106032b9c1bc387cb78c31c10784c/dmesg)https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/6CapsLock is on when Xi and xmodmap is used2018-08-10T20:15:06ZBugzilla Migration UserCapsLock is on when Xi and xmodmap is used## Submitted by Takao Fujiwara
Assigned to **Xorg Project Team**
**[Link to original bug (#91874)](https://bugs.freedesktop.org/show_bug.cgi?id=91874)**
## Description
IBus uses libXi to switch input method engines and also runs x...## Submitted by Takao Fujiwara
Assigned to **Xorg Project Team**
**[Link to original bug (#91874)](https://bugs.freedesktop.org/show_bug.cgi?id=91874)**
## Description
IBus uses libXi to switch input method engines and also runs xmodmap for user customization.
When apply Zenkaku_Hankaku on CapsLock with xmodmap and bind Zenkaku_Hankaku key with libXi, sometimes CapsLock is on instead of Zenkaku_Hankaku when quickly type Zenkaku_Hankaku.
I will attach the test program.https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/5XIWarpPointer is not fully compatible with Xinerama extension2018-08-10T20:15:04ZBugzilla Migration UserXIWarpPointer is not fully compatible with Xinerama extension## Submitted by Anton Lantcevich
Assigned to **Xorg Project Team**
**[Link to original bug (#91223)](https://bugs.freedesktop.org/show_bug.cgi?id=91223)**
## Description
XIWarpPointer function from XInput2 extension is not fully c...## Submitted by Anton Lantcevich
Assigned to **Xorg Project Team**
**[Link to original bug (#91223)](https://bugs.freedesktop.org/show_bug.cgi?id=91223)**
## Description
XIWarpPointer function from XInput2 extension is not fully compatible with Xineraa extension. The problem occures when one uses XIWarpPointer in multiscreen environment with enabled Xinerama extension. XIWarpPointer warps pointer relative to root window of screen0 and not to the Xinerama's virtual root window, it can be reproduced by making screen1,2...n be to the left of screen0 or above it, then call to XIWarpPointer with coordinates say 100,100 will warp pointer to coordinates 100,100 of screen0 and not the leftmost (topmost) screen.
Version: githttps://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/4Initialisation of Uninitialised variables2023-05-01T23:01:36ZBugzilla Migration UserInitialisation of Uninitialised variables## Submitted by Akash Kedia
Assigned to **Xorg Project Team**
**[Link to original bug (#90856)](https://bugs.freedesktop.org/show_bug.cgi?id=90856)**
## Description
Created attachment 116297
Patch file for the bug fix submitted
U...## Submitted by Akash Kedia
Assigned to **Xorg Project Team**
**[Link to original bug (#90856)](https://bugs.freedesktop.org/show_bug.cgi?id=90856)**
## Description
Created attachment 116297
Patch file for the bug fix submitted
Using uninitialized variables. Some fields are uninitialized when calling memcpy inside Data function. Hence initialization is necessary.
This patch is based on libXi-1.7.4 version
**Attachment 116297**, "Patch file for the bug fix submitted":
[libXi-1.7.4.patch](/uploads/3c59b2e741a972797b7ef7d8db0dd562/libXi-1.7.4.patch)https://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/3mutter freezes with libXi (regression)2018-08-10T20:14:59ZBugzilla Migration Usermutter freezes with libXi (regression)## Submitted by Sylvain Pasche
Assigned to **Xorg Project Team**
**[Link to original bug (#88870)](https://bugs.freedesktop.org/show_bug.cgi?id=88870)**
## Description
While investigating a freeze with the the mutter window manage...## Submitted by Sylvain Pasche
Assigned to **Xorg Project Team**
**[Link to original bug (#88870)](https://bugs.freedesktop.org/show_bug.cgi?id=88870)**
## Description
While investigating a freeze with the the mutter window manager (details in https://bugzilla.gnome.org/show_bug.cgi?id=743553) I identified that the regression came from libXi:
good: 1.7.4
bad: c6484410
$ git bisect bad
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[f699770e7c92da1dbf16892fde83438f0b79c979] XIGetClientPointer: Return False on error.
To reproduce, try running mutter with that version of libXi and switch the focus between windows a few times. After a few tries mutter freezes and doesn't get any more X events.
Version: githttps://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/2[ALL bisected]On Fedora, gnome-session crash when run some APPs(googleearth)2018-08-10T20:14:56ZBugzilla Migration User[ALL bisected]On Fedora, gnome-session crash when run some APPs(googleearth)## Submitted by meng
Assigned to **Xorg Project Team**
**[Link to original bug (#87660)](https://bugs.freedesktop.org/show_bug.cgi?id=87660)**
## Description
Environment
--------------------------
Platform:IVB/SNB/PNV
LibXi:git-58...## Submitted by meng
Assigned to **Xorg Project Team**
**[Link to original bug (#87660)](https://bugs.freedesktop.org/show_bug.cgi?id=87660)**
## Description
Environment
--------------------------
Platform:IVB/SNB/PNV
LibXi:git-5810d0797
Mesa: (master)414be86c96836b35571185da776d2bce1b620c6a
Xserver:(master)xorg-server-1.16.99.901-102-g826e7c2b36f192fbbe7d
Kernel: (drm-intel-nightly)4fa23142a15526f4a4b5df61f26eacdd558a849a
Bug detailed description
--------------------------
gnome-session crash when run some APPs(googleearth). Please see Xorg.0.log and gnome-session.log.
It's libXi regression, the first bad commit is :
commit 5810d0797160a97012664ffe719a59e1b288a525
Author: Michal Srb <msrb@suse.com>
Date: Sat Nov 1 20:00:56 2014 +0200
Fix logic in _XIAllowEvents and prevent double unlock.
Replacing the second _XiCheckExtInit with _XiCheckVersion prevents possible
double unlock as _XiCheckExtInit actually unlocks the display when it returns
-1.
.
==Reproduce steps==
----------------------------
1.xinit &
2.gnome-session
3.run googleearth or start multiple browsershttps://gitlab.freedesktop.org/xorg/lib/libxi/-/issues/1XDeviceMotionEvent for Wacom tablet contain unsync mouse/tablet data2018-08-10T20:14:54ZBugzilla Migration UserXDeviceMotionEvent for Wacom tablet contain unsync mouse/tablet data## Submitted by Pierre Baillargeon
Assigned to **Xorg Project Team**
**[Link to original bug (#41757)](https://bugs.freedesktop.org/show_bug.cgi?id=41757)**
## Description
In a single XDeviceMotionEvent, the axis_data representing...## Submitted by Pierre Baillargeon
Assigned to **Xorg Project Team**
**[Link to original bug (#41757)](https://bugs.freedesktop.org/show_bug.cgi?id=41757)**
## Description
In a single XDeviceMotionEvent, the axis_data representing the high-resolution position of the tablet stylus and the x_root and y_root are not in sync. The high-resolution data is one event ahead of the x_root and y_root data.
In application that make use of both data (switching, for example, between low and high resolution dynamically depending on the action) this discrepancy causes artifacts.
The event should be made so that both data are always in sync.
Version: 7.1 (2006.05)