diff options
author | Flanker <i@flanker017.me> | 2015-10-22 02:04:55 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-10-22 02:04:55 +0000 |
commit | 9964d83869565cf4dda432129cfe50f6ede19338 (patch) | |
tree | 04ae2f950829415086a4273d1cc121b5f4e8e5c4 | |
parent | 18165848e86feab8656bfdac3173bccf45a9a6df (diff) | |
parent | 72c8ca4a0191827fd3265c0820b685a6cf420be1 (diff) | |
download | native-9964d83869565cf4dda432129cfe50f6ede19338.tar.gz |
add number constraint for samples per MotionEvent am: 5d17838ade
am: 72c8ca4a01
* commit '72c8ca4a0191827fd3265c0820b685a6cf420be1':
add number constraint for samples per MotionEvent
-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 96b6885091..a8df11bde1 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 3a7afe9cb6..cd55ee54bf 100644 --- a/libs/input/Input.cpp +++ b/libs/input/Input.cpp @@ -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; } |