Index: net/quic/chromium/quic_stream_factory.cc |
diff --git a/net/quic/chromium/quic_stream_factory.cc b/net/quic/chromium/quic_stream_factory.cc |
index 38d76d789e5efef2266350b414d10e020308d136..6831339a35bf9fcfee1ffd37a0f6828a3a862e84 100644 |
--- a/net/quic/chromium/quic_stream_factory.cc |
+++ b/net/quic/chromium/quic_stream_factory.cc |
@@ -1265,8 +1265,12 @@ void QuicStreamFactory::OnNetworkConnected(NetworkHandle network) { |
status_ = OPEN; |
ScopedConnectionMigrationEventLog scoped_event_log(net_log_, |
"OnNetworkConnected"); |
- for (auto session : all_sessions_) { |
- session.first->OnNetworkConnected(network, scoped_event_log.net_log()); |
+ QuicStreamFactory::SessionIdMap::iterator it = all_sessions_.begin(); |
+ // Sessions may be deleted while iterating through the map. |
+ while (it != all_sessions_.end()) { |
+ QuicChromiumClientSession* session = it->first; |
+ ++it; |
+ session->OnNetworkConnected(network, scoped_event_log.net_log()); |
} |
} |