Boundary check for ProximityInfoState::getProximityTypeG().

Bug: 12481052
Change-Id: Ic0b64d2fa17eb8f65f3ad1a7b468cdf6dddf7e70
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 bb4b417..de99e2f 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 @@
     if (!isUsed()) {
         return UNRELATED_CHAR;
     }
+    const int sampledSearchKeyVectorsSize = static_cast<int>(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<int>(mSampledSearchKeyVectors[index].size()); ++i) {