summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorAravind Akella <aakella@google.com>2014-09-23 16:42:49 -0700
committerAravind Akella <aakella@google.com>2014-09-23 23:46:22 +0000
commit5105960d49bfa86efeeea8f87c87aa96b5771c37 (patch)
tree7e13d628aa698194f87538c931b97c62b5612e5f /services
parent12c4bdad7b2372ab64dcd2abbdbe47e709fb8b90 (diff)
downloadframeworks_native-5105960d49bfa86efeeea8f87c87aa96b5771c37.zip
frameworks_native-5105960d49bfa86efeeea8f87c87aa96b5771c37.tar.gz
frameworks_native-5105960d49bfa86efeeea8f87c87aa96b5771c37.tar.bz2
Fix sockfd leakage in SensorService. Remove sockfd from Looper
when the connection is removed from mActiveConnections. Bug: 17472228 Change-Id: Iaabe0968bd2104ef961ff5e8659bf91712e2e1db
Diffstat (limited to 'services')
-rw-r--r--services/sensorservice/SensorService.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index f953a96..77ada40 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -653,6 +653,7 @@ void SensorService::cleanupConnection(SensorEventConnection* c)
i++;
}
}
+ mLooper->removeFd(c->getSensorChannel()->getSendFd());
mActiveConnections.remove(connection);
BatteryService::cleanup(c->getUid());
if (c->needsWakeLock()) {
@@ -799,6 +800,7 @@ status_t SensorService::cleanupWithoutDisableLocked(
BatteryService::disableSensor(connection->getUid(), handle);
}
if (connection->hasAnySensor() == false) {
+ mLooper->removeFd(connection->getSensorChannel()->getSendFd());
mActiveConnections.remove(connection);
}
// see if this sensor becomes inactive