diff options
| author | 2021-09-09 17:10:52 +0000 | |
|---|---|---|
| committer | 2021-09-09 17:10:52 +0000 | |
| commit | 489b25e7e94cd15ea1867ae73ba3bc75bce76428 (patch) | |
| tree | 730a21a1c96ee5308929d8d3c30561d2ef5dd4e6 | |
| parent | 20c69e39781105fc4cd943e10fbf3f505fc036b6 (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.java | 3 |
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(); } |