From 68669a42fb78682945a9974e50d18cd86fee9607 Mon Sep 17 00:00:00 2001 From: Raph Levien Date: Thu, 12 Sep 2013 14:55:38 -0700 Subject: Fix for AIOBE at android.text.AndroidBidi.directions This fixes bug 9900288: Multiple apps crashing; AIOBE at android.text.AndroidBidi.directions. The AndroidBidi.directions() method was not correctly handling the case of a run of length 0, causing ArrayIndexOutOfBoundsException. This patch simply avoids accessing the levels array in that case. Change-Id: I036a85b7792ea3364725a87033ca74b94f0e93a1 --- core/java/android/text/AndroidBidi.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/text/AndroidBidi.java b/core/java/android/text/AndroidBidi.java index eacd40d0db29..b1c07f592c79 100644 --- a/core/java/android/text/AndroidBidi.java +++ b/core/java/android/text/AndroidBidi.java @@ -60,6 +60,9 @@ import android.text.Layout.Directions; */ public static Directions directions(int dir, byte[] levels, int lstart, char[] chars, int cstart, int len) { + if (len == 0) { + return Layout.DIRS_ALL_LEFT_TO_RIGHT; + } int baseLevel = dir == Layout.DIR_LEFT_TO_RIGHT ? 0 : 1; int curLevel = levels[lstart]; -- cgit v1.2.3-59-g8ed1b