Handle IndexOutOfBoundsException for IMEI & MEID substring
Bug: 200831773
Test: Build
Change-Id: Id7fbf9e0e176b89224304ce1d15c6185ca31ee7b
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index b67b77a..44858d2 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -3085,7 +3085,12 @@
String tac = null;
if (phone != null) {
String imei = phone.getImei();
- tac = imei == null ? null : imei.substring(0, TYPE_ALLOCATION_CODE_LENGTH);
+ try {
+ tac = imei == null ? null : imei.substring(0, TYPE_ALLOCATION_CODE_LENGTH);
+ } catch (IndexOutOfBoundsException e) {
+ Log.e(LOG_TAG, "IMEI length shorter than upper index.");
+ return null;
+ }
}
return tac;
}
@@ -3117,7 +3122,13 @@
String manufacturerCode = null;
if (phone != null) {
String meid = phone.getMeid();
- manufacturerCode = meid == null ? null : meid.substring(0, MANUFACTURER_CODE_LENGTH);
+ try {
+ manufacturerCode =
+ meid == null ? null : meid.substring(0, MANUFACTURER_CODE_LENGTH);
+ } catch (IndexOutOfBoundsException e) {
+ Log.e(LOG_TAG, "MEID length shorter than upper index.");
+ return null;
+ }
}
return manufacturerCode;
}