SensorService: fix potential mutex use-before-init.
Since mRegistered is declared before mLock, it's possible to
receive a service notification callback on a binder thread
before mLock has been initialized. Prevent this by registering
in the constructor body, when we are guaranteed that the mutex
has been initialized.
Bug: 68765551
Test: many reboots on sailfish
Change-Id: I7beedc72be2a4aae961c546402f7016eacaeb3c0
diff --git a/services/sensorservice/SensorDeviceUtils.cpp b/services/sensorservice/SensorDeviceUtils.cpp
index b1344be..30de63f 100644
--- a/services/sensorservice/SensorDeviceUtils.cpp
+++ b/services/sensorservice/SensorDeviceUtils.cpp
@@ -28,8 +28,8 @@
namespace android {
namespace SensorDeviceUtils {
-HidlServiceRegistrationWaiter::HidlServiceRegistrationWaiter()
- : mRegistered(ISensors::registerForNotifications("default", this)) {
+HidlServiceRegistrationWaiter::HidlServiceRegistrationWaiter() {
+ mRegistered = ISensors::registerForNotifications("default", this);
}
Return<void> HidlServiceRegistrationWaiter::onRegistration(