diff options
| author | 2022-11-18 18:36:30 +0000 | |
|---|---|---|
| committer | 2022-11-18 19:36:14 +0000 | |
| commit | 5f6ded88250a6e1322a386b5a1153f87b775f210 (patch) | |
| tree | 21827c40e3eaf274b3f6482bd39dbea035e960d7 | |
| parent | a3793499691e3bcb52964cdfdad3a84124839b32 (diff) | |
fakeservicemanager: Don't accept null binders for addService
Parity with the rest of the Service Manager APIs.
Test: atest fakeservicemanager_test
Bug: 259549842
Change-Id: I715590bc4c4f2f434ad93f82c2ba98d40334ef38
| -rw-r--r-- | libs/fakeservicemanager/ServiceManager.cpp | 3 | ||||
| -rw-r--r-- | libs/fakeservicemanager/test_sm.cpp | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libs/fakeservicemanager/ServiceManager.cpp b/libs/fakeservicemanager/ServiceManager.cpp index 480ec79725..deba724c4f 100644 --- a/libs/fakeservicemanager/ServiceManager.cpp +++ b/libs/fakeservicemanager/ServiceManager.cpp @@ -36,6 +36,9 @@ sp<IBinder> ServiceManager::checkService( const String16& name) const { status_t ServiceManager::addService(const String16& name, const sp<IBinder>& service, bool /*allowIsolated*/, int /*dumpsysFlags*/) { + if (service == nullptr) { + return UNEXPECTED_NULL; + } mNameToService[name] = service; return NO_ERROR; } diff --git a/libs/fakeservicemanager/test_sm.cpp b/libs/fakeservicemanager/test_sm.cpp index 71e5abe126..4ddbe0cf81 100644 --- a/libs/fakeservicemanager/test_sm.cpp +++ b/libs/fakeservicemanager/test_sm.cpp @@ -50,6 +50,12 @@ TEST(AddService, HappyHappy) { IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT), OK); } +TEST(AddService, SadNullBinder) { + auto sm = new ServiceManager(); + EXPECT_EQ(sm->addService(String16("foo"), nullptr, false /*allowIsolated*/, + IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT), android::UNEXPECTED_NULL); +} + TEST(AddService, HappyOverExistingService) { auto sm = new ServiceManager(); EXPECT_EQ(sm->addService(String16("foo"), getBinder(), false /*allowIsolated*/, |