From ef0904106d09a5471f809feec4219dc22fc740fe Mon Sep 17 00:00:00 2001 From: Yohei Yukawa Date: Fri, 17 Jan 2014 08:59:07 +0900 Subject: [PATCH] Make the range checking of BaseInputConnection#setSelection stricter With this change, setSelection will not cause java.lang.IndexOutOfBoundsException even if a negative index is specified. Bug: 8841916 Change-Id: Ib62a6ba235f80b7495fefb2e5cc2d5357d804310 --- core/java/android/view/inputmethod/BaseInputConnection.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/inputmethod/BaseInputConnection.java b/core/java/android/view/inputmethod/BaseInputConnection.java index 5552952049fc4..cccfa78544e8e 100644 --- a/core/java/android/view/inputmethod/BaseInputConnection.java +++ b/core/java/android/view/inputmethod/BaseInputConnection.java @@ -484,10 +484,10 @@ public class BaseInputConnection implements InputConnection { final Editable content = getEditable(); if (content == null) return false; int len = content.length(); - if (start > len || end > len) { + if (start > len || end > len || start < 0 || end < 0) { // If the given selection is out of bounds, just ignore it. // Most likely the text was changed out from under the IME, - // the the IME is going to have to update all of its state + // and the IME is going to have to update all of its state // anyway. return true; }