From cfa318ee4d9b64009dfcd5ec23c992b5c202d9a8 Mon Sep 17 00:00:00 2001 From: Qi Wang Date: Sun, 25 Apr 2021 20:36:45 +0800 Subject: Validate spell checker suggestions before applying. Fix: 185786752 Test: atest CtsInputMethodTestCases:SpellCheckerTest Change-Id: Icf447fc3ab174bc17af0e823b830f5abef6071df --- core/java/android/widget/SpellChecker.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/android/widget/SpellChecker.java b/core/java/android/widget/SpellChecker.java index a16c1519e4d0..7c04b1cc195b 100644 --- a/core/java/android/widget/SpellChecker.java +++ b/core/java/android/widget/SpellChecker.java @@ -461,7 +461,7 @@ public class SpellChecker implements SpellCheckerSessionListener { @Override public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] results) { final Editable editable = (Editable) mTextView.getText(); - + final int sentenceLength = editable.length(); for (int i = 0; i < results.length; ++i) { final SentenceSuggestionsInfo ssi = results[i]; if (ssi == null) { @@ -475,6 +475,9 @@ public class SpellChecker implements SpellCheckerSessionListener { } final int offset = ssi.getOffsetAt(j); final int length = ssi.getLengthAt(j); + if (offset < 0 || offset + length > sentenceLength) { + continue; + } final SpellCheckSpan scs = onGetSuggestionsInternal( suggestionsInfo, offset, length); if (spellCheckSpan == null && scs != null) { -- cgit v1.2.3-59-g8ed1b