From d9c4008a731999a141faa518b42fc3385c5540f6 Mon Sep 17 00:00:00 2001 From: Yeabkal Wubshit Date: Fri, 21 Jul 2023 19:11:52 -0700 Subject: Improve VelocityTracker bad pointer ID crash log This helps developers better understand the crash cause when crashes are caused by bad pointer IDs given to VelocityTracker Bug: 292300437 Test: atest libinput_tests Change-Id: I3108f5b378ed2d9e92102cc7b38045058e02ec1f --- libs/input/VelocityTracker.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libs/input/VelocityTracker.cpp') diff --git a/libs/input/VelocityTracker.cpp b/libs/input/VelocityTracker.cpp index 87c7768f25..8704eee73d 100644 --- a/libs/input/VelocityTracker.cpp +++ b/libs/input/VelocityTracker.cpp @@ -16,10 +16,11 @@ #define LOG_TAG "VelocityTracker" -#include +#include #include #include #include +#include #include #include @@ -243,6 +244,11 @@ void VelocityTracker::clearPointer(int32_t pointerId) { void VelocityTracker::addMovement(nsecs_t eventTime, int32_t pointerId, int32_t axis, float position) { + if (pointerId < 0 || pointerId > MAX_POINTER_ID) { + LOG(FATAL) << "Invalid pointer ID " << pointerId << " for axis " + << MotionEvent::getLabel(axis); + } + if (mCurrentPointerIdBits.hasBit(pointerId) && std::chrono::nanoseconds(eventTime - mLastEventTime) > ASSUME_POINTER_STOPPED_TIME) { ALOGD_IF(DEBUG_VELOCITY, "VelocityTracker: stopped for %s, clearing state.", -- cgit v1.2.3-59-g8ed1b