Fix use-after-free in GnssMesaurementInterface

Bug: 228639296
Test: on Cuttlefish
Change-Id: Ibd36d23f2059ae994132099dd67d8fd10f84cd72
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) {