From 366b07b93acff234376378d1d7bac95318c2358a Mon Sep 17 00:00:00 2001 From: Guojing Yuan Date: Wed, 16 Feb 2022 00:09:33 +0000 Subject: [PATCH] [CDM Bug] Fix a crash issue when serviceConnector is empty serviceConnector is empty when there's no CompanionDeviceService implementer declared or the permission is missing. Fix: 219784113 Test: make Change-Id: If6e3eed04323b520e409bc31dc3960e9dfc5d41a --- .../server/companion/CompanionApplicationController.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/companion/java/com/android/server/companion/CompanionApplicationController.java b/services/companion/java/com/android/server/companion/CompanionApplicationController.java index be1bc7907cd55..c39b59ae35b3b 100644 --- a/services/companion/java/com/android/server/companion/CompanionApplicationController.java +++ b/services/companion/java/com/android/server/companion/CompanionApplicationController.java @@ -26,6 +26,7 @@ import android.content.ComponentName; import android.content.Context; import android.os.Handler; import android.util.Log; +import android.util.Slog; import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; @@ -120,6 +121,12 @@ class CompanionApplicationController { mBoundCompanionApplications.setValueForPackage(userId, packageName, serviceConnectors); } + if (serviceConnectors.isEmpty()) { + Slog.e(TAG, "Can't find CompanionDeviceService implementer in package: " + + packageName + ". Please check if they are correctly declared."); + return; + } + // The first connector in the list is always the primary connector: set a listener to it. serviceConnectors.get(0).setListener(this::onPrimaryServiceBindingDied);