diff options
author | Flanker <i@flanker017.me> | 2015-09-07 15:28:58 +0800 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2015-10-27 15:22:35 -0700 |
commit | faa7a7841f1e87ba2e9553a25509718686d963b3 (patch) | |
tree | 809a8f2e16dd1424d9746e6a33107fb82fd6276e | |
parent | 846d747274455c58acf933794baef65c07502a2c (diff) | |
download | native-faa7a7841f1e87ba2e9553a25509718686d963b3.tar.gz |
add number constraint for samples per MotionEventandroid-cts-6.0_r9android-cts-6.0_r8android-cts-6.0_r7android-cts-6.0_r6android-cts-6.0_r5android-cts-6.0_r4android-cts-6.0_r32android-cts-6.0_r31android-cts-6.0_r30android-cts-6.0_r3android-cts-6.0_r29android-cts-6.0_r28android-cts-6.0_r27android-cts-6.0_r26android-cts-6.0_r25android-cts-6.0_r24android-cts-6.0_r23android-cts-6.0_r22android-cts-6.0_r21android-cts-6.0_r20android-cts-6.0_r19android-cts-6.0_r18android-cts-6.0_r17android-cts-6.0_r16android-cts-6.0_r15android-cts-6.0_r14android-cts-6.0_r13android-cts-6.0_r12android-6.0.0_r7afw-test-harness-1.5marshmallow-releasemarshmallow-cts-release
Bug:23905002
Signed-off-by: Adam Lesinski <adamlesinski@google.com>
(cherry picked from commit 552a8a5d8df32f659b8d11311a244cdc6d3b7733)
Change-Id: I9b7ea859889b7697bee4165a2746602212120543
-rw-r--r-- | include/input/Input.h | 5 | ||||
-rw-r--r-- | libs/input/Input.cpp | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/include/input/Input.h b/include/input/Input.h index 4a67f47f9e..92b3d36955 100644 --- a/include/input/Input.h +++ b/include/input/Input.h @@ -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.) diff --git a/libs/input/Input.cpp b/libs/input/Input.cpp index 2c1418e074..b64cb2ca9d 100644 --- a/libs/input/Input.cpp +++ b/libs/input/Input.cpp @@ -424,7 +424,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; } |