Fix null deref in sensors 2.0 VTS teardown am: b6b28e58c4 am: 0e70902d34
am: 2dc221df40
Change-Id: I09afaf33c649879ad71f0f4ed8de42a7a2a0b86a
diff --git a/sensors/2.0/vts/functional/SensorsHidlEnvironmentV2_0.cpp b/sensors/2.0/vts/functional/SensorsHidlEnvironmentV2_0.cpp
index be7415b..5f71654 100644
--- a/sensors/2.0/vts/functional/SensorsHidlEnvironmentV2_0.cpp
+++ b/sensors/2.0/vts/functional/SensorsHidlEnvironmentV2_0.cpp
@@ -109,11 +109,15 @@
void SensorsHidlEnvironmentV2_0::HidlTearDown() {
mStopThread = true;
- // Wake up the event queue so the poll thread can exit
- mEventQueueFlag->wake(asBaseType(EventQueueFlagBits::READ_AND_PROCESS));
- mPollThread.join();
+ if (mEventQueueFlag != nullptr) {
+ // Wake up the event queue so the poll thread can exit
+ mEventQueueFlag->wake(asBaseType(EventQueueFlagBits::READ_AND_PROCESS));
+ if (mPollThread.joinable()) {
+ mPollThread.join();
+ }
- EventFlag::deleteEventFlag(&mEventQueueFlag);
+ EventFlag::deleteEventFlag(&mEventQueueFlag);
+ }
}
void SensorsHidlEnvironmentV2_0::startPollingThread() {