add number constraint for samples per MotionEvent

Bug:23905002
Change-Id: Ifd24802977c3dcdd1dbc5120a78aac41beae4603

Signed-off-by: Adam Lesinski <adamlesinski@google.com>
This commit is contained in:
Flanker 2015-09-07 15:28:58 +08:00 committed by Adam Lesinski
parent b0127aadaf
commit 552a8a5d8d
2 changed files with 7 additions and 1 deletions

View File

@ -110,6 +110,11 @@ enum {
*/ */
#define MAX_POINTERS 16 #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. * Maximum pointer id value supported in a motion event.
* Smallest pointer id is 0. * Smallest pointer id is 0.

View File

@ -424,7 +424,8 @@ void MotionEvent::transform(const float matrix[9]) {
status_t MotionEvent::readFromParcel(Parcel* parcel) { status_t MotionEvent::readFromParcel(Parcel* parcel) {
size_t pointerCount = parcel->readInt32(); size_t pointerCount = parcel->readInt32();
size_t sampleCount = 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; return BAD_VALUE;
} }