From 7869e224aaaf717b5ab86df00b60fd5be5a0996c Mon Sep 17 00:00:00 2001 From: Sean Wan Date: Mon, 14 Jul 2014 17:07:33 -0700 Subject: [PATCH] CW on L: Fix a SIGSEGV crash in sensor service. This is to fix b/16189080. BUG: 16189080 Change-Id: I78d44e82f797c0808891acde609040c46745a0bb --- services/sensorservice/SensorService.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp index f5dba3816..646801793 100644 --- a/services/sensorservice/SensorService.cpp +++ b/services/sensorservice/SensorService.cpp @@ -490,8 +490,12 @@ bool SensorService::isVirtualSensor(int handle) const { } 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 SensorService::getSensorList()