OSDN Git Service

add number constraint for samples per MotionEvent am: 5d17838ade am: 72c8ca4a01 am...
authorFlanker <i@flanker017.me>
Thu, 22 Oct 2015 02:15:13 +0000 (02:15 +0000)
committerandroid-build-merger <android-build-merger@google.com>
Thu, 22 Oct 2015 02:15:13 +0000 (02:15 +0000)
am: 90dc6dc825

* commit '90dc6dc825ebd1f0f4c9474fad887cd7eac8e9bd':
  add number constraint for samples per MotionEvent

include/input/Input.h
libs/input/Input.cpp

index c360f63..b067a6b 100644 (file)
@@ -111,6 +111,11 @@ enum {
 #define MAX_POINTERS 16
 
 /*
+ * Maximum number of samples supported per motion event.
+ */
+#define MAX_SAMPLES UINT16_MAX
+
+/*
  * Maximum pointer id value supported in a motion event.
  * Smallest pointer id is 0.
  * (This is limited by our use of BitSet32 to track pointer assignments.)
index 3a7afe9..cd55ee5 100644 (file)
@@ -421,7 +421,8 @@ void MotionEvent::transform(const float matrix[9]) {
 status_t MotionEvent::readFromParcel(Parcel* parcel) {
     size_t pointerCount = parcel->readInt32();
     size_t sampleCount = parcel->readInt32();
-    if (pointerCount == 0 || pointerCount > MAX_POINTERS || sampleCount == 0) {
+    if (pointerCount == 0 || pointerCount > MAX_POINTERS ||
+            sampleCount == 0 || sampleCount > MAX_SAMPLES) {
         return BAD_VALUE;
     }