summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Fiona Campbell <flc@google.com> 2021-09-09 17:10:52 +0000
committer Fiona Campbell <flc@google.com> 2021-09-09 17:10:52 +0000
commit489b25e7e94cd15ea1867ae73ba3bc75bce76428 (patch)
tree730a21a1c96ee5308929d8d3c30561d2ef5dd4e6
parent20c69e39781105fc4cd943e10fbf3f505fc036b6 (diff)
Fix NPE when passing displayId through handler
NPE was thrown when calling getPendingFrameRateOverrideUids. This is because the LogicalDisplay array could change before the message is handled. This fix ensures that the logical display is valid before continuing with the method. Bug: 198359227 Bug: 198159201 Bug: 199027886 Test: Verify it doesn't crash Change-Id: I11adf67478d7a6f81512aa3cd4bc568056dfa80a
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 73bcea6de115..827523be0d3a 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -2252,6 +2252,9 @@ public final class DisplayManagerService extends SystemService {
int displayId = msg.arg1;
final LogicalDisplay display =
mLogicalDisplayMapper.getDisplayLocked(displayId);
+ if (display == null) {
+ break;
+ }
uids = display.getPendingFrameRateOverrideUids();
display.clearPendingFrameRateOverrideUids();
}