Merge "Fix use-after-free in GnssMesaurementInterface" into tm-dev am: c495886f97 am: 2654bde526
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/17749651
Change-Id: I10ca23f722daf00f9d6746bd3a2f1d8966592e02
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/gnss/aidl/default/Gnss.cpp b/gnss/aidl/default/Gnss.cpp
index 7855b51..226b1f4 100644
--- a/gnss/aidl/default/Gnss.cpp
+++ b/gnss/aidl/default/Gnss.cpp
@@ -153,7 +153,6 @@
std::vector<GnssSvInfo> Gnss::filterBlocklistedSatellites(
std::vector<GnssSvInfo> gnssSvInfoList) const {
- ALOGD("filterBlocklistedSatellites");
for (uint32_t i = 0; i < gnssSvInfoList.size(); i++) {
if (mGnssConfiguration->isBlocklisted(gnssSvInfoList[i])) {
gnssSvInfoList[i].svFlag &= ~(uint32_t)IGnssCallback::GnssSvFlags::USED_IN_FIX;
diff --git a/gnss/aidl/default/GnssMeasurementInterface.cpp b/gnss/aidl/default/GnssMeasurementInterface.cpp
index 2c7241b..228d5bf 100644
--- a/gnss/aidl/default/GnssMeasurementInterface.cpp
+++ b/gnss/aidl/default/GnssMeasurementInterface.cpp
@@ -106,12 +106,14 @@
std::this_thread::sleep_for(std::chrono::milliseconds(mMinIntervalMillis));
}
});
- mThread.detach();
}
void GnssMeasurementInterface::stop() {
ALOGD("stop");
mIsActive = false;
+ if (mThread.joinable()) {
+ mThread.join();
+ }
}
void GnssMeasurementInterface::reportMeasurement(const GnssData& data) {
diff --git a/gnss/aidl/default/GnssNavigationMessageInterface.cpp b/gnss/aidl/default/GnssNavigationMessageInterface.cpp
index 4bc859d..fe34787 100644
--- a/gnss/aidl/default/GnssNavigationMessageInterface.cpp
+++ b/gnss/aidl/default/GnssNavigationMessageInterface.cpp
@@ -69,12 +69,14 @@
std::this_thread::sleep_for(std::chrono::milliseconds(mMinIntervalMillis));
}
});
- mThread.detach();
}
void GnssNavigationMessageInterface::stop() {
ALOGD("stop");
mIsActive = false;
+ if (mThread.joinable()) {
+ mThread.join();
+ }
}
void GnssNavigationMessageInterface::reportMessage(const GnssNavigationMessage& message) {