diff options
| author | 2022-09-21 22:02:12 +0000 | |
|---|---|---|
| committer | 2022-09-21 22:02:12 +0000 | |
| commit | 77527d1c6b4c84bec8e97d178bbcbc862b10ffbb (patch) | |
| tree | 583869a15b59a33ab7a9bfd80a8b78c274a10ead | |
| parent | 1f5cb20c24d07b5baf2a6d7d5b4401886377db24 (diff) | |
| parent | 00a54e416a72ab98ebb31c6dfb4b6eb581f41166 (diff) | |
Merge "servicemanager : Adding clear API to ServiceManager" am: 00a54e416a
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2222273
Change-Id: Icfcad1c5537a96617680c3bb1c619cf655d4a429
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | cmds/servicemanager/ServiceManager.cpp | 6 | ||||
| -rw-r--r-- | cmds/servicemanager/ServiceManager.h | 6 | ||||
| -rw-r--r-- | cmds/servicemanager/ServiceManagerFuzzer.cpp | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/cmds/servicemanager/ServiceManager.cpp b/cmds/servicemanager/ServiceManager.cpp index 3cfe5297ca..07273835f9 100644 --- a/cmds/servicemanager/ServiceManager.cpp +++ b/cmds/servicemanager/ServiceManager.cpp @@ -762,4 +762,10 @@ Status ServiceManager::getServiceDebugInfo(std::vector<ServiceDebugInfo>* outRet return Status::ok(); } +void ServiceManager::clear() { + mNameToService.clear(); + mNameToRegistrationCallback.clear(); + mNameToClientCallback.clear(); +} + } // namespace android diff --git a/cmds/servicemanager/ServiceManager.h b/cmds/servicemanager/ServiceManager.h index 5e403194d7..c6db697a89 100644 --- a/cmds/servicemanager/ServiceManager.h +++ b/cmds/servicemanager/ServiceManager.h @@ -58,6 +58,12 @@ public: void binderDied(const wp<IBinder>& who) override; void handleClientCallbacks(); + /** + * This API is added for debug purposes. It clears members which hold service and callback + * information. + */ + void clear(); + protected: virtual void tryStartService(const std::string& name); diff --git a/cmds/servicemanager/ServiceManagerFuzzer.cpp b/cmds/servicemanager/ServiceManagerFuzzer.cpp index 39f8522f84..b76a6bd3cd 100644 --- a/cmds/servicemanager/ServiceManagerFuzzer.cpp +++ b/cmds/servicemanager/ServiceManagerFuzzer.cpp @@ -29,6 +29,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { auto accessPtr = std::make_unique<Access>(); auto serviceManager = sp<ServiceManager>::make(std::move(accessPtr)); fuzzService(serviceManager, FuzzedDataProvider(data, size)); + serviceManager->clear(); return 0; } |