Changeset 254092 in webkit
- Timestamp:
- Jan 6, 2020, 3:32:31 PM (7 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
NetworkProcess/cocoa/NetworkSessionCocoa.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r254087 r254092 1 2020-01-06 Alex Christensen <achristensen@webkit.org> 2 3 NetworkSessionCocoa::isolatedSession should not use iterator after mutating m_isolatedSessions 4 https://bugs.webkit.org/show_bug.cgi?id=205824 5 <rdar://problem/55107625> 6 7 Reviewed by Chris Dumez. 8 9 Classic iterator use after mutating iterated container was causing crashes by returning a null SessionWrapper& 10 This was introduced in r252185 or r248640. 11 12 * NetworkProcess/cocoa/NetworkSessionCocoa.mm: 13 (WebKit::NetworkSessionCocoa::isolatedSession): 14 1 15 2020-01-06 Mark Lam <mark.lam@apple.com> 2 16 -
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
r254087 r254092 1179 1179 entry->lastUsed = WallTime::now(); 1180 1180 1181 auto& sessionWrapper = [&] (auto storedCredentialsPolicy) -> SessionWrapper& { 1182 switch (storedCredentialsPolicy) { 1183 case WebCore::StoredCredentialsPolicy::Use: 1184 LOG(NetworkSession, "Using isolated NSURLSession with credential storage."); 1185 return entry->sessionWithCredentialStorage; 1186 case WebCore::StoredCredentialsPolicy::DoNotUse: 1187 LOG(NetworkSession, "Using isolated NSURLSession without credential storage."); 1188 return entry->sessionWithoutCredentialStorage; 1189 case WebCore::StoredCredentialsPolicy::EphemeralStateless: 1190 if (!m_ephemeralStatelessSession.session) 1191 initializeEphemeralStatelessSession(); 1192 return m_ephemeralStatelessSession; 1193 } 1194 } (storedCredentialsPolicy); 1195 1181 1196 if (m_isolatedSessions.size() > maxNumberOfIsolatedSessions) { 1182 1197 WebCore::RegistrableDomain keyToRemove; … … 1195 1210 RELEASE_ASSERT(m_isolatedSessions.size() <= maxNumberOfIsolatedSessions); 1196 1211 1197 switch (storedCredentialsPolicy) { 1198 case WebCore::StoredCredentialsPolicy::Use: 1199 LOG(NetworkSession, "Using isolated NSURLSession with credential storage."); 1200 return entry->sessionWithCredentialStorage; 1201 case WebCore::StoredCredentialsPolicy::DoNotUse: 1202 LOG(NetworkSession, "Using isolated NSURLSession without credential storage."); 1203 return entry->sessionWithoutCredentialStorage; 1204 case WebCore::StoredCredentialsPolicy::EphemeralStateless: 1205 if (!m_ephemeralStatelessSession.session) 1206 initializeEphemeralStatelessSession(); 1207 return m_ephemeralStatelessSession; 1208 } 1212 return sessionWrapper; 1209 1213 } 1210 1214
Note:
See TracChangeset
for help on using the changeset viewer.