Hello community,
here is the log from the commit of package xf86-input-synaptics for
openSUSE:Factory checked in at 2013-01-08 09:15:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-synaptics (Old)
and /work/SRC/openSUSE:Factory/.xf86-input-synaptics.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-input-synaptics", Maintainer is ""
Changes:
--------
---
/work/SRC/openSUSE:Factory/xf86-input-synaptics/xf86-input-synaptics.changes
2012-07-31 14:00:01.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.xf86-input-synaptics.new/xf86-input-synaptics.changes
2013-01-08 09:15:48.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 4 09:58:45 UTC 2013 - [email protected]
+
+- xf86-input-synaptics-Reset-num_active_touches-on-DeviceOff-52496.patch
+ * Reset num_active_touches on DeviceOff (bnc#779452, fdo#52496)
+
+-------------------------------------------------------------------
New:
----
xf86-input-synaptics-Reset-num_active_touches-on-DeviceOff-52496.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-input-synaptics.spec ++++++
--- /var/tmp/diff_new_pack.IPRSGo/_old 2013-01-08 09:15:49.000000000 +0100
+++ /var/tmp/diff_new_pack.IPRSGo/_new 2013-01-08 09:15:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xf86-input-synaptics
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,6 +27,7 @@
Patch0: xf86-input-synaptics-wait.diff
Patch2: xf86-input-synaptics-xorg.conf.d_snippet.diff
Patch5: xf86-input-synaptics-default-tap.diff
+Patch6:
xf86-input-synaptics-Reset-num_active_touches-on-DeviceOff-52496.patch
BuildRequires: autoconf >= 2.60
BuildRequires: automake
BuildRequires: libtool
@@ -75,6 +76,7 @@
%patch0 -p1
%patch2 -p1
%patch5 -p1
+%patch6 -p1
%build
autoreconf -fi
++++++ xf86-input-synaptics-Reset-num_active_touches-on-DeviceOff-52496.patch
++++++
>From a245d42f53096b1ae81e6702729f97ca508e5b5b Mon Sep 17 00:00:00 2001
From: Peter Hutterer <[email protected]>
Date: Thu, 30 Aug 2012 16:38:38 +1000
Subject: [PATCH] Reset num_active_touches on DeviceOff (#52496)
When disabling the device, reset num_active_touches to zero. Otherwise,
num_active_touches stays at the value it was on DeviceOff(). Future touches
add to that value until the index may go past priv->open_slots[].
That causes spurious memory corruption on touch ends.
And as of 55fc42e7c9b4948cadd4f98ef7b6a3b12e268e3e we ignore pre-existing
touches anyway.
Test-case:
- place num_touches fingers on the touchpad
- xinput disable <device>
- lift fingers
- xinput enable <device>
- place finger on device, num_active_touches is now (num_touches + 1)
X.Org Bug 52496 <http://bugs.freedesktop.org/show_bug.cgi?id=52496>
Signed-off-by: Peter Hutterer <[email protected]>
Reviewed-by: Chase Douglas <[email protected]>
---
src/synaptics.c | 2 ++
1 file changed, 2 insertions(+)
Index: xf86-input-synaptics-1.6.2/src/synaptics.c
===================================================================
--- xf86-input-synaptics-1.6.2.orig/src/synaptics.c
+++ xf86-input-synaptics-1.6.2/src/synaptics.c
@@ -1154,6 +1154,7 @@ SynapticsReset(SynapticsPrivate * priv)
priv->prev_z = 0;
priv->prevFingers = 0;
#ifdef HAVE_MULTITOUCH
+ priv->num_active_touches = 0;
memset(priv->open_slots, 0, priv->num_slots * sizeof(int));
#endif
}
@@ -3118,6 +3119,7 @@ UpdateTouchState(InputInfoPtr pInfo, str
if (hw->slot_state[i] == SLOTSTATE_OPEN) {
priv->open_slots[priv->num_active_touches] = i;
priv->num_active_touches++;
+ BUG_WARN(priv->num_active_touches > priv->num_slots);
}
else if (hw->slot_state[i] == SLOTSTATE_CLOSE) {
Bool found = FALSE;
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]