SIGSEGV in mipointer.c:610 miPointerSetPosition()
For several years I've been having sporadic crashes of the X server. They always happens when I start to draw a mouse gesture using the easystroke-0.6.0 gesture program. The crashes are so rare they only happens 2-3 times per year making them difficult to debug.
I was finally able to catch a backtrace of a crash which I've attached to this report Xorg_sergfault.txt. The backtrace shows a null pointer deref at https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/mi/mipointer.c#L610
I'm no expert at C but one thing looks a bit suspicious to me. Thread 1 is waiting on the input_lock but immediately before that it modified the pPointer (https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/mi/mipointer.c#L276). That looks like the same pPointer causing the null pointer deref in Thread 6. Perhaps the locking in Thread 1 should also protect the pPointer?
running:
xorg-server 1.20.13 (can't see any relevant changes in 1.21)
xf86-input-evdev-2.10.6
xorg.conf:
Section "ServerFlags"
Option "LogVerbose" "10"
EndSection
Section "Device"
Identifier "IGP"
Driver "intel"
Option "TearFree" "true"
Option "DRI" "3"
EndSection
xorg-server built on gentoo with: ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/xorg-server-1.20.13-r1 --htmldir=/usr/share/doc/xorg-server-1.20.13-r1/html --with-sysroot=/ --libdir=/usr/lib64 --disable-selective-werror --disable-static --disable-ipv6 --disable-debug --disable-dmx --disable-kdrive --disable-unit-tests --disable-libunwind --enable-record --enable-xfree86-utils --enable-dri --enable-dri2 --enable-dri3 --enable-glamor --enable-glx --disable-xcsecurity --disable-xephyr --disable-xnest --enable-xorg --enable-xvfb --enable-config-udev --without-doxygen --without-xmlto --without-systemd-daemon --disable-xwayland --enable-libdrm --sysconfdir=/etc/X11 --localstatedir=/var --with-fontrootdir=/usr/share/fonts --with-xkb-output=/var/lib/xkb --disable-config-hal --disable-linux-acpi --without-dtrace --without-fop --with-os-vendor=Gentoo --with-sha1=libcrypto CPP=x86_64-pc-linux-gnu-cpp --enable-systemd-logind --disable-install-setuid --disable-suid-wrapper