Merge "Since we are using string.subString(startIndex, endIndex) when parsing denylist, we should make sure startIndex <= endIndex before calling string.substring(). Otherwise, an index out of bound excpetion would throw and make the app terminate. This could happen if we are not careful with the denylist and make the denylist wrong formatted. For example, a ";" is left out in the end, and startIndex in this case would become -1." into udc-dev am: 51009536ce

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21487245

Change-Id: I56ce4df35b67819f0ff357f2b5041bb6ddca3c84
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Haoran Zhang
2023-02-24 17:58:45 +00:00
committed by Automerger Merge Worker

View File

@@ -899,9 +899,10 @@ public final class AutofillManager {
// 3. Get the activity names substring between the indexes // 3. Get the activity names substring between the indexes
final int activityStringStartIndex = packageInStringIndex + packageName.length() + 1; final int activityStringStartIndex = packageInStringIndex + packageName.length() + 1;
if (activityStringStartIndex < firstNextSemicolonIndex) { if (activityStringStartIndex >= firstNextSemicolonIndex) {
Log.e(TAG, "Failed to get denied activity names from denylist because it's wrongly " Log.e(TAG, "Failed to get denied activity names from denylist because it's wrongly "
+ "formatted"); + "formatted");
return;
} }
final String activitySubstring = final String activitySubstring =
denyListString.substring(activityStringStartIndex, firstNextSemicolonIndex); denyListString.substring(activityStringStartIndex, firstNextSemicolonIndex);