Hi Cyril,

Since there were no activity from the team and reported patch has fixed
the issue (at least for me and few others on the upstream bug report
page) I am planing to NMU it in 2-3 days into 5-days delayed
queue.

See git patch for this NMU attached

-- 
Yaroslav O. Halchenko
Postdoctoral Fellow,   Department of Psychological and Brain Sciences
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834                       Fax: +1 (603) 646-1419
WWW:   http://www.linkedin.com/in/yarik        
From e064dcaed6f9988901e1f844a6c8b61c8c4c7997 Mon Sep 17 00:00:00 2001
From: Yaroslav Halchenko <deb...@onerussian.com>
Date: Thu, 30 Aug 2012 12:14:20 -0400
Subject: [PATCH] Adopted patch http://patchwork.freedesktop.org/patch/11873
 to resolve segfaults upon suspend/resume (Closes: #681796)

---
 debian/changelog                                   |    8 ++++
 debian/patches/series                              |    1 +
 ...-DeviceOff-52496-backported-against-1.6.2.patch |   41 ++++++++++++++++++++
 3 files changed, 50 insertions(+)
 create mode 100644 debian/patches/synaptics-Reset-num_active_touches-on-DeviceOff-52496-backported-against-1.6.2.patch

diff --git a/debian/changelog b/debian/changelog
index 9801715..d21c22c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+xserver-xorg-input-synaptics (1.6.2-1.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Adopted patch http://patchwork.freedesktop.org/patch/11873 to resolve
+    segfaults upon suspend/resume (Closes: #681796)
+
+ -- Yaroslav Halchenko <deb...@onerussian.com>  Thu, 30 Aug 2012 11:58:56 -0400
+
 xserver-xorg-input-synaptics (1.6.2-1) unstable; urgency=low
 
   * New upstream release, from the 1.6 branch.
diff --git a/debian/patches/series b/debian/patches/series
index d694f00..ab8344e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 #01-synaptics-dont-grab-if-not-on-current-VT.patch
 02-do-not-use-synaptics-for-keyboards.patch
+synaptics-Reset-num_active_touches-on-DeviceOff-52496-backported-against-1.6.2.patch
diff --git a/debian/patches/synaptics-Reset-num_active_touches-on-DeviceOff-52496-backported-against-1.6.2.patch b/debian/patches/synaptics-Reset-num_active_touches-on-DeviceOff-52496-backported-against-1.6.2.patch
new file mode 100644
index 0000000..70c0bb1
--- /dev/null
+++ b/debian/patches/synaptics-Reset-num_active_touches-on-DeviceOff-52496-backported-against-1.6.2.patch
@@ -0,0 +1,41 @@
+Author: Peter Hutterer 
+Subject: 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)
+
+ Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=52496
+Bug-Debian: http://bugs.debian.org/681796
+Last-Update: 2012-08-30
+
+--- a/src/synaptics.c
++++ b/src/synaptics.c
+@@ -1153,6 +1153,7 @@ SynapticsReset(SynapticsPrivate * priv)
+     priv->lastButtons = 0;
+     priv->prev_z = 0;
+     priv->prevFingers = 0;
++    priv->num_active_touches = 0;
+ #ifdef HAVE_MULTITOUCH
+     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;
-- 
1.7.10.4

Attachment: signature.asc
Description: Digital signature

Reply via email to