SF: Add defensive check on luma sampling
The Add/Remove RegionSamplingListener should return BAD_VALUE
if the input was invalid.
Bug: 119639245
Test: ./libgui_test --gtest_filter="RegionSamplingTest.*"
Change-Id: I5c5f7a30131c52dead970b23230058a62a874902
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index dde6cd9..8ec411f 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1309,7 +1309,7 @@
status_t SurfaceFlinger::addRegionSamplingListener(const Rect& samplingArea,
const sp<IBinder>& stopLayerHandle,
const sp<IRegionSamplingListener>& listener) {
- if (!listener) {
+ if (!listener || samplingArea == Rect::INVALID_RECT) {
return BAD_VALUE;
}
mRegionSamplingThread->addListener(samplingArea, stopLayerHandle, listener);
@@ -1317,6 +1317,9 @@
}
status_t SurfaceFlinger::removeRegionSamplingListener(const sp<IRegionSamplingListener>& listener) {
+ if (!listener) {
+ return BAD_VALUE;
+ }
mRegionSamplingThread->removeListener(listener);
return NO_ERROR;
}