OSDN Git Service

Fix sockfd leakage in SensorService. Remove sockfd from Looper
authorAravind Akella <aakella@google.com>
Tue, 23 Sep 2014 23:42:49 +0000 (16:42 -0700)
committerAravind Akella <aakella@google.com>
Tue, 23 Sep 2014 23:46:22 +0000 (23:46 +0000)
when the connection is removed from mActiveConnections.

Bug: 17472228
Change-Id: Iaabe0968bd2104ef961ff5e8659bf91712e2e1db

services/sensorservice/SensorService.cpp

index f953a96..77ada40 100644 (file)
@@ -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