OSDN Git Service

Fix race between SensorManager ctor and callback
authorBrian Duddie <bduddie@google.com>
Thu, 6 Jun 2019 23:43:41 +0000 (16:43 -0700)
committerArjun Garg <arjgarg@google.com>
Thu, 11 Jul 2019 19:16:56 +0000 (12:16 -0700)
Avoids potential invalid memory access if system server crashes during
initialization.

Bug: 132927376
Test: confirm sensors initialize
Change-Id: If7421c452b5893ab2567323d265503a1ce304482
Merged-In: If7421c452b5893ab2567323d265503a1ce304482
(cherry picked from commit 231a12189b2b820843ebf5d002876a23e0890c09)

libs/sensor/SensorManager.cpp

index 6fe72a1..5fbaf1b 100644 (file)
@@ -93,7 +93,7 @@ SensorManager& SensorManager::getInstanceForPackage(const String16& packageName)
 
 SensorManager::SensorManager(const String16& opPackageName)
     : mSensorList(0), mOpPackageName(opPackageName), mDirectConnectionHandle(1) {
-    // okay we're not locked here, but it's not needed during construction
+    Mutex::Autolock _l(mLock);
     assertStateLocked();
 }