From 6ca3ac08ed536c415ac68913e23fde175b5e3f4d Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Wed, 21 Mar 2012 12:12:20 +0900
Subject: [PATCH] Strengthen java code against bad returns from native

This doesn't really fix the following bug but it may alleviate
the symptoms

Bug: 6191885
Change-Id: I0de3f550cc7c6cdf79b291399785ad31b205d2ac
---
 java/src/com/android/inputmethod/latin/BinaryDictionary.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 31ff4e7b43..dfc8c8e9d9 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -149,6 +149,9 @@ public class BinaryDictionary extends Dictionary {
         int count = getBigramsNative(mNativeDict, chars, chars.length, mInputCodes, codesSize,
                 mOutputChars_bigrams, mBigramScores, MAX_WORD_LENGTH, MAX_BIGRAMS,
                 MAX_PROXIMITY_CHARS_SIZE);
+        if (count > MAX_BIGRAMS) {
+            count = MAX_BIGRAMS;
+        }
 
         for (int j = 0; j < count; ++j) {
             if (codesSize > 0 && mBigramScores[j] < 1) break;
-- 
GitLab