Merge "Handle IndexOutOfBoundsException for IMEI & MEID substring" am: 2de0c7d039
Original change: https://android-review.googlesource.com/c/platform/packages/services/Telephony/+/1844466
Change-Id: Ie8202a904494f570f2d894947337f05066d35992
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f78a0a1..eeccf0f 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -3130,7 +3130,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;
}
@@ -3162,7 +3167,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;
}