Call guaranteeClient on all services in interface chain am: 85c2f4e1d6 am: 528f369a79

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/hwservicemanager/+/11990970

Change-Id: I66dcf6c543e4026ae764eeb9d649b4acc011f44f
diff --git a/ServiceManager.cpp b/ServiceManager.cpp
index 165a8d9..85d4974 100644
--- a/ServiceManager.cpp
+++ b/ServiceManager.cpp
@@ -284,6 +284,12 @@
     // Let HidlService know that we handed out a client. If the client drops the service before the
     // next time handleClientCallbacks is called, it will still know that the service had been handed out.
     hidlService->guaranteeClient();
+    forEachExistingService([&] (HidlService *otherService) {
+        if (otherService != hidlService && interfacesEqual(service, otherService->getService())) {
+            otherService->guaranteeClient();
+        }
+        return true;
+    });
 
     // This is executed immediately after the binder driver confirms the transaction. The driver
     // will update the appropriate data structures to reflect the fact that the client now has the