diff options
author | 2025-01-08 08:59:49 +0000 | |
---|---|---|
committer | 2025-01-09 05:39:11 -0800 | |
commit | 0aa07a1179c27192a99daf76579652413f840018 (patch) | |
tree | 9a01f4b6576ecf9cf36558cc8836fdeb6201eb2a /libs/binder/BackendUnifiedServiceManager.cpp | |
parent | 87a06b7f8a3ed0c994fbf32c981f030227d21254 (diff) |
[getService] Only set binder when getService2() succeeds
To avoid crashing in the getService() call.
Bug: 387175643
Test: atest servicemanager_test
Change-Id: I8617e748fdb85e96ded4c59b5c7785be20de05ee
Diffstat (limited to 'libs/binder/BackendUnifiedServiceManager.cpp')
-rw-r--r-- | libs/binder/BackendUnifiedServiceManager.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/binder/BackendUnifiedServiceManager.cpp b/libs/binder/BackendUnifiedServiceManager.cpp index 4220cdd0e8..7c0319aead 100644 --- a/libs/binder/BackendUnifiedServiceManager.cpp +++ b/libs/binder/BackendUnifiedServiceManager.cpp @@ -215,7 +215,9 @@ Status BackendUnifiedServiceManager::getService(const ::std::string& name, sp<IBinder>* _aidl_return) { os::Service service; Status status = getService2(name, &service); - *_aidl_return = service.get<os::Service::Tag::serviceWithMetadata>().service; + if (status.isOk()) { + *_aidl_return = service.get<os::Service::Tag::serviceWithMetadata>().service; + } return status; } |