From 84c52a3c813669d70305e584763549c989d9305d Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Fri, 10 Jan 2014 20:15:36 +0900 Subject: [PATCH] Boundary check for ProximityInfoState::getProximityTypeG(). Bug: 12481052 Change-Id: Ic0b64d2fa17eb8f65f3ad1a7b468cdf6dddf7e70 --- .../jni/src/suggest/core/layout/proximity_info_state.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/native/jni/src/suggest/core/layout/proximity_info_state.cpp b/native/jni/src/suggest/core/layout/proximity_info_state.cpp index bb4b41714..de99e2f0c 100644 --- a/native/jni/src/suggest/core/layout/proximity_info_state.cpp +++ b/native/jni/src/suggest/core/layout/proximity_info_state.cpp @@ -255,6 +255,14 @@ ProximityType ProximityInfoState::getProximityTypeG(const int index, const int c if (!isUsed()) { return UNRELATED_CHAR; } + const int sampledSearchKeyVectorsSize = static_cast(mSampledSearchKeyVectors.size()); + if (index < 0 || index >= sampledSearchKeyVectorsSize) { + AKLOGE("getProximityTypeG() is called with an invalid index(%d). " + "mSampledSearchKeyVectors.size() = %d, codePoint = %x.", index, + sampledSearchKeyVectorsSize, codePoint); + ASSERT(false); + return UNRELATED_CHAR; + } const int lowerCodePoint = CharUtils::toLowerCase(codePoint); const int baseLowerCodePoint = CharUtils::toBaseCodePoint(lowerCodePoint); for (int i = 0; i < static_cast(mSampledSearchKeyVectors[index].size()); ++i) {