Fix unprotected multi-threaded access to list.

PiperOrigin-RevId: 912324436
This commit is contained in:
Francis Tsui
2026-05-07 22:18:07 -07:00
committed by Copybara-Service
parent 1346571e4f
commit 313efed9c9
2 changed files with 5 additions and 2 deletions
@@ -111,7 +111,7 @@ class WifiHotspotMedium : public api::WifiHotspotMedium {
WiFiDirectConnectionListener listener_{nullptr};
// The list of WiFiDirectDevice is used to keep hotspot connection alive.
std::list<WiFiDirectDevice> wifi_direct_devices_;
std::list<WiFiDirectDevice> wifi_direct_devices_ ABSL_GUARDED_BY(mutex_);
fire_and_forget OnStatusChanged(
WiFiDirectAdvertisementPublisher sender,
@@ -349,7 +349,10 @@ fire_and_forget WifiHotspotMedium::OnConnectionRequested(
auto wifi_direct_device = WiFiDirectDevice::FromIdAsync(
connection_request.DeviceInformation().Id())
.get();
wifi_direct_devices_.push_back(wifi_direct_device);
{
absl::MutexLock lock(mutex_);
wifi_direct_devices_.push_back(wifi_direct_device);
}
LOG(INFO) << "Registered the device " << winrt::to_string(device_name)
<< " in WLAN-AutoConfig";
} catch (...) {