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