Another fix for #2186897: Cannot unlock the device by swiping
This was probably a side-effect of the divide by zero exception,
but we'll be safe anyway.
Change-Id: I875200febb9b3090d12f170066b2bea74c9f77f8
diff --git a/services/java/com/android/server/KeyInputQueue.java b/services/java/com/android/server/KeyInputQueue.java
index 09591f4..5d65c71 100644
--- a/services/java/com/android/server/KeyInputQueue.java
+++ b/services/java/com/android/server/KeyInputQueue.java
@@ -721,11 +721,14 @@
// virtual key area... but still
// propagate this to the previous
// data for comparisons.
+ int num = ms.mNextNumPointers;
+ if (num > InputDevice.MAX_POINTERS) {
+ num = InputDevice.MAX_POINTERS;
+ }
System.arraycopy(ms.mNextData, 0,
ms.mLastData, 0,
- ms.mNextNumPointers
- * MotionEvent.NUM_SAMPLE_DATA);
- ms.mLastNumPointers = ms.mNextNumPointers;
+ num * MotionEvent.NUM_SAMPLE_DATA);
+ ms.mLastNumPointers = num;
}
ms.finish();