From 310d3ddef753eb63b859ebbd6fe141368fe192cd Mon Sep 17 00:00:00 2001 From: Anthony Stange Date: Thu, 25 Mar 2021 16:33:28 +0000 Subject: [PATCH] Don't assert while a callback is registered If an assert fails while a callback is registered and some data is delivered that attempts to invoke the callback, it'll cause a segfault since the callback is allocated on a part of the stack that's no longer valid. Bug: 183362725 Merged-In: I3a1f8fbf15c24e344fde8e5b44bb93681ef47d38 Change-Id: I2b1895a1f5898b8971ffd820a7d619a09f12495d Test: Run VTS --- sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp b/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp index 8364ba992e..a258390ca0 100644 --- a/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp +++ b/sensors/2.0/vts/functional/VtsHalSensorsV2_0TargetTest.cpp @@ -390,6 +390,7 @@ TEST_F(SensorsHidlTest, InjectSensorEventData) { // Wait for events to be written back to the Event FMQ callback.waitForEvents(sensors, milliseconds(1000) /* timeout */); + getEnvironment()->unregisterCallback(); for (const auto& s : sensors) { auto events = callback.getEvents(s.sensorHandle); @@ -409,7 +410,6 @@ TEST_F(SensorsHidlTest, InjectSensorEventData) { ASSERT_EQ(lastEvent.u.vec3.status, injectedEvent.u.vec3.status); } - getEnvironment()->unregisterCallback(); ASSERT_EQ(Result::OK, getSensors()->setOperationMode(OperationMode::NORMAL)); } @@ -711,7 +711,7 @@ void SensorsHidlTest::runFlushTest(const std::vector& sensors, bool // Flush the sensor for (int32_t i = 0; i < flushCalls; i++) { Result flushResult = flush(sensor.sensorHandle); - ASSERT_EQ(flushResult, expectedResponse); + EXPECT_EQ(flushResult, expectedResponse); } }