diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java index 507a265f0203f..858cce49d1c10 100644 --- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java +++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java @@ -969,6 +969,10 @@ final class LocalDisplayAdapter extends DisplayAdapter { } private int findMatchingModeIdLocked(int configId) { + if (configId < 0 || configId >= mDisplayConfigs.length) { + Slog.e(TAG, "Invalid display config index " + configId); + return NO_DISPLAY_MODE_ID; + } SurfaceControl.DisplayConfig config = mDisplayConfigs[configId]; for (int i = 0; i < mSupportedModes.size(); i++) { DisplayModeRecord record = mSupportedModes.valueAt(i);