From 8a0319aca5107fe5011d7d4e47ccd00e49d803d6 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Wed, 25 Apr 2018 16:31:05 -0700 Subject: [PATCH] Fix WTF in PendingIntentRecord.unregisterCancelListenerLocked() It's possible that detachCancelListenersLocked() has just been called when unregisterCancelListenerLocked() is called, so need a null check. Change-Id: If4b18d713595b1cf1a29ba05a3736892b21931a4 Fixes: 78592185 Test: build --- .../core/java/com/android/server/am/PendingIntentRecord.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/am/PendingIntentRecord.java b/services/core/java/com/android/server/am/PendingIntentRecord.java index 550c37af5db23..483fec67a429f 100644 --- a/services/core/java/com/android/server/am/PendingIntentRecord.java +++ b/services/core/java/com/android/server/am/PendingIntentRecord.java @@ -219,6 +219,9 @@ final class PendingIntentRecord extends IIntentSender.Stub { } public void unregisterCancelListenerLocked(IResultReceiver receiver) { + if (mCancelCallbacks == null) { + return; // Already unregistered or detached. + } mCancelCallbacks.unregister(receiver); if (mCancelCallbacks.getRegisteredCallbackCount() <= 0) { mCancelCallbacks = null;