From 4b7fba22e09668f2d72938ef857d87845c305f4d73a225c5b8d5a92f80df79e8 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Sat, 2 Feb 2008 00:09:11 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xorg-x11-server?expand=0&rev=63 --- commit-50e80c3.diff | 31 +++++++++++++++++++++++++++++++ xorg-x11-server.changes | 7 +++++++ xorg-x11-server.spec | 8 +++++++- 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 commit-50e80c3.diff diff --git a/commit-50e80c3.diff b/commit-50e80c3.diff new file mode 100644 index 0000000..9371b68 --- /dev/null +++ b/commit-50e80c3.diff @@ -0,0 +1,31 @@ +commit 50e80c39870adfdc84fdbc00dddf1362117ad443 +Author: Peter Hutterer +Date: Wed Dec 19 16:20:36 2007 +1030 + + include: never overwrite realInputProc with enqueueInputProc. Bug #13511 + + In some cases (triggered by a key repeat during a sync grab) XKB unwrapping + can overwrite the device's realInputProc with the enqueueInputProc. When the + grab is released and the events are replayed, we end up in an infinite loop. + Each event is replayed and in replaying pushed to the end of the queue again. + + This fix is a hack only. It ensures that the realInputProc is never + overwritten with the enqueueInputProc. + + This fixes Bug #13511 (https://bugs.freedesktop.org/show_bug.cgi?id=13511) + (cherry picked from commit eace88989c3b65d5c20e9f37ea9b23c7c8e19335) + +diff --git a/include/xkbsrv.h b/include/xkbsrv.h +index 6425e37..bf386e7 100644 +--- a/include/xkbsrv.h ++++ b/include/xkbsrv.h +@@ -258,7 +258,8 @@ typedef struct + device->public.processInputProc = proc; \ + oldprocs->processInputProc = \ + oldprocs->realInputProc = device->public.realInputProc; \ +- device->public.realInputProc = proc; \ ++ if (proc != device->public.enqueueInputProc) \ ++ device->public.realInputProc = proc; \ + oldprocs->unwrapProc = device->unwrapProc; \ + device->unwrapProc = unwrapproc; + diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 8fbeb10..87a7ef3 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Feb 1 15:23:25 CET 2008 - sndirsch@suse.de + +- commit-50e80c3.diff: + * never overwrite realInputProc with enqueueInputProc + (bnc#357989, bfo#13511) + ------------------------------------------------------------------- Thu Jan 24 16:26:23 CET 2008 - sndirsch@suse.de diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 4c12de0..f519f5a 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -21,7 +21,7 @@ BuildRequires: libjpeg-devel Url: http://xorg.freedesktop.org/ %define EXPERIMENTAL 0 Version: 7.3 -Release: 53 +Release: 55 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -103,6 +103,7 @@ Patch95: CVE-2007-6427-xinput.diff Patch96: CVE-2007-6428-TOG-cup.diff Patch97: CVE-2007-6429-shm_evi.diff Patch98: CVE-2008-0006-pcf_font.diff +Patch99: commit-50e80c3.diff %description This package contains the X.Org Server. @@ -233,6 +234,7 @@ popd %patch96 -p1 %patch97 -p1 %patch98 -p1 +%patch99 -p1 %build pushd xorg-docs-* @@ -539,6 +541,10 @@ exit 0 %endif %changelog +* Fri Feb 01 2008 sndirsch@suse.de +- commit-50e80c3.diff: + * never overwrite realInputProc with enqueueInputProc + (bnc#357989, bfo#13511) * Thu Jan 24 2008 sndirsch@suse.de - only switch to radeon driver in %%post if radeonold driver is no longer available (Bug #355009)