diff options
| author | Qi Wang <zakwang@google.com> | 2021-04-27 06:26:43 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-04-27 06:26:43 +0000 |
| commit | 0ebb4d88a1d0a01d0c4499ffe9938c871df00e49 (patch) | |
| tree | 5a21674b4634df87deeced0470728fe2532647e7 /core/java/android | |
| parent | 8c87ff6affe3144b397646ddb31c11a241236d8e (diff) | |
| parent | cfa318ee4d9b64009dfcd5ec23c992b5c202d9a8 (diff) | |
Merge "Validate spell checker suggestions before applying." into sc-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/widget/SpellChecker.java | 5 |
1 files changed, 4 insertions, 1 deletions
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) { |
