Do not register with null observer
bug: 168307955
test: unit tests.
Change-Id: Iadef8660c95f2c545a212dfabf06c264b7c719a6
diff --git a/services/mediaresourcemanager/ResourceObserverService.cpp b/services/mediaresourcemanager/ResourceObserverService.cpp
index 9cc6fe4..4e97406 100644
--- a/services/mediaresourcemanager/ResourceObserverService.cpp
+++ b/services/mediaresourcemanager/ResourceObserverService.cpp
@@ -165,6 +165,10 @@
return Status::fromServiceSpecificError(PERMISSION_DENIED);
}
+ if (in_observer == nullptr) {
+ return Status::fromServiceSpecificError(BAD_VALUE);
+ }
+
::ndk::SpAIBinder binder = in_observer->asBinder();
{
@@ -220,6 +224,10 @@
return Status::fromServiceSpecificError(PERMISSION_DENIED);
}
+ if (in_observer == nullptr) {
+ return Status::fromServiceSpecificError(BAD_VALUE);
+ }
+
::ndk::SpAIBinder binder = in_observer->asBinder();
{
diff --git a/services/mediaresourcemanager/test/ResourceObserverService_test.cpp b/services/mediaresourcemanager/test/ResourceObserverService_test.cpp
index e3d3e78..acd9df1 100644
--- a/services/mediaresourcemanager/test/ResourceObserverService_test.cpp
+++ b/services/mediaresourcemanager/test/ResourceObserverService_test.cpp
@@ -182,6 +182,11 @@
std::vector<MediaObservableFilter> filters1;
Status status;
+ // Register with null observer should fail.
+ status = mObserverService->registerObserver(nullptr, filters1);
+ EXPECT_FALSE(status.isOk());
+ EXPECT_EQ(status.getServiceSpecificError(), BAD_VALUE);
+
// Register with empty observables should fail.
status = mObserverService->registerObserver(mTestObserver1, filters1);
EXPECT_FALSE(status.isOk());