diff options
| author | 2022-04-07 16:34:16 +0000 | |
|---|---|---|
| committer | 2022-04-07 16:34:16 +0000 | |
| commit | f3e8d88277152d9c268f536a501b6e1944f554f4 (patch) | |
| tree | df4c1d1aa5ccee7a9ce126d354d03e8a11177789 | |
| parent | b597282629a5b8983e6de2611c06ea889961effa (diff) | |
| parent | fc32f968d6a1d8dfb741bbd4ada0e5e41b97f594 (diff) | |
Merge "Null check on BroadcastRecord's receivers list." into tm-dev
| -rw-r--r-- | services/core/java/com/android/server/am/BroadcastDispatcher.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/BroadcastRecord.java | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/BroadcastDispatcher.java b/services/core/java/com/android/server/am/BroadcastDispatcher.java index 01d8109a82a0..872531a47bc9 100644 --- a/services/core/java/com/android/server/am/BroadcastDispatcher.java +++ b/services/core/java/com/android/server/am/BroadcastDispatcher.java @@ -580,6 +580,11 @@ public class BroadcastDispatcher { // ---------------------------------- // BroadcastQueue operation support void enqueueOrderedBroadcastLocked(BroadcastRecord r) { + if (r.receivers == null || r.receivers.isEmpty()) { + mOrderedBroadcasts.add(r); + return; + } + if (Intent.ACTION_LOCKED_BOOT_COMPLETED.equals(r.intent.getAction())) { // Create one BroadcastRecord for each UID that can be deferred. final SparseArray<BroadcastRecord> deferred = diff --git a/services/core/java/com/android/server/am/BroadcastRecord.java b/services/core/java/com/android/server/am/BroadcastRecord.java index 2ee32b6abe96..5343af25fd39 100644 --- a/services/core/java/com/android/server/am/BroadcastRecord.java +++ b/services/core/java/com/android/server/am/BroadcastRecord.java @@ -414,6 +414,10 @@ final class BroadcastRecord extends Binder { return ret; } + if (receivers == null) { + return ret; + } + final String action = intent.getAction(); if (!Intent.ACTION_LOCKED_BOOT_COMPLETED.equals(action) && !Intent.ACTION_BOOT_COMPLETED.equals(action)) { |