CW on L: Fix a SIGSEGV crash in sensor service.
This is to fix b/16189080.
BUG: 16189080
Change-Id: I78d44e82f797c0808891acde609040c46745a0bb
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index f5dba38..6468017 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -490,8 +490,12 @@
}
bool SensorService::isWakeUpSensorEvent(const sensors_event_t& event) const {
- SensorInterface* sensor = mSensorMap.valueFor(event.sensor);
- return sensor->getSensor().isWakeUpSensor();
+ int handle = event.sensor;
+ if (event.type == SENSOR_TYPE_META_DATA) {
+ handle = event.meta_data.sensor;
+ }
+ SensorInterface* sensor = mSensorMap.valueFor(handle);
+ return sensor != NULL && sensor->getSensor().isWakeUpSensor();
}
Vector<Sensor> SensorService::getSensorList()