summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Putikhin <nputikhin@google.com>2023-12-15 10:15:55 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-12-15 10:15:55 +0000
commita39da7cb448c3b0aef575eec91b1e71af9e7521c (patch)
tree009d777191ba178478bfafb00cf5681740a3b057
parent9a6a1b3d4e76da5edddffe0856f352328233c4fc (diff)
parentc315f49b2ee6b88ad0883346a6a999971326b425 (diff)
downloadlibhardware_legacy-a39da7cb448c3b0aef575eec91b1e71af9e7521c.tar.gz
Merge "Check that ISystemSuspend is declared before acquiring a wake lock" into main am: c315f49b2e
Original change: https://android-review.googlesource.com/c/platform/hardware/libhardware_legacy/+/2870803 Change-Id: Ibe65e62a2ebbb8a98ffc540e7d2862e6456cdfd5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--power.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/power.cpp b/power.cpp
index 98ce861..6041207 100644
--- a/power.cpp
+++ b/power.cpp
@@ -40,8 +40,15 @@ static std::unordered_map<std::string, std::shared_ptr<IWakeLock>> gWakeLockMap;
static const std::shared_ptr<ISystemSuspend> getSystemSuspendServiceOnce() {
static std::shared_ptr<ISystemSuspend> suspendService =
- ISystemSuspend::fromBinder(ndk::SpAIBinder(AServiceManager_waitForService(
- (ISystemSuspend::descriptor + std::string("/default")).c_str())));
+ []() -> std::shared_ptr<ISystemSuspend> {
+ std::string suspendServiceName =
+ ISystemSuspend::descriptor + std::string("/default");
+ if (!AServiceManager_isDeclared(suspendServiceName.c_str())) {
+ return nullptr;
+ }
+ return ISystemSuspend::fromBinder(ndk::SpAIBinder(
+ AServiceManager_waitForService(suspendServiceName.c_str())));
+ }();
return suspendService;
}