Blob Blame History Raw
From ece019225689982ce983c78a44c911eac4ca969c Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue, 9 Mar 2010 18:48:24 +1000
Subject: [PATCH] Stop processing when the pktlen changes.

---
 src/xf86Wacom.c |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c
index 231325d..2242b13 100644
--- a/src/xf86Wacom.c
+++ b/src/xf86Wacom.c
@@ -1193,6 +1193,29 @@ void wcmReadPacket(LocalDevicePtr local)
 			break;
 		}
 		pos += cnt;
+
+               if (common->wcmDevCls != &gWacomUSBDevice)
+               {
+                       data = common->buffer + pos;
+                       if ( data[0] & 0x18 )
+                       {
+                               if (common->wcmPktLength == 9)
+                               {
+                                       DBG(1, common->debugLevel,
+                                               ErrorF("xf86WcmReadPacket: not a pen data any more\n"));
+                                       break;
+                               }
+                       }
+                       else
+                       {
+                               if (common->wcmPktLength != 9)
+                               {
+                                       DBG(1, common->debugLevel,
+                                               ErrorF("xf86WcmReadPacket: not a touch data any more\n"));
+                                       break;
+                               }
+                       }
+               }
 	}
  
 	if (pos)
-- 
1.6.6.1