Modified: branches/safari-600.1.4.12-branch/Source/WebCore/ChangeLog (175129 => 175130)
--- branches/safari-600.1.4.12-branch/Source/WebCore/ChangeLog 2014-10-23 17:55:15 UTC (rev 175129)
+++ branches/safari-600.1.4.12-branch/Source/WebCore/ChangeLog 2014-10-23 18:01:53 UTC (rev 175130)
@@ -1,5 +1,28 @@
2014-10-23 Babak Shafiei <[email protected]>
+ Merge r174827.
+
+ 2014-10-17 Alexey Proskuryakov <[email protected]>
+
+ [iOS] Crash when load is canceled while waiting for the user to type HTTP authentication credentials
+ https://bugs.webkit.org/show_bug.cgi?id=137826
+ rdar://problem/17329599
+
+ Reviewed by Brady Eidson.
+
+ No new tests, as we don't have a way to simulate details of user interaction with
+ an auth dialog.
+
+ * platform/network/cf/ResourceHandleCFNet.cpp:
+ (WebCore::ResourceHandle::receivedCredential):
+ (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
+ (WebCore::ResourceHandle::receivedRequestToPerformDefaultHandling):
+ (WebCore::ResourceHandle::receivedChallengeRejection):
+ Added null checks before passing m_connection for CFNetwork functions, making this
+ match what Mac code does when sending a message to a nil receiver.
+
+2014-10-23 Babak Shafiei <[email protected]>
+
Merge r174846.
2014-10-17 Simon Fraser <[email protected]>
Modified: branches/safari-600.1.4.12-branch/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp (175129 => 175130)
--- branches/safari-600.1.4.12-branch/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp 2014-10-23 17:55:15 UTC (rev 175129)
+++ branches/safari-600.1.4.12-branch/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp 2014-10-23 18:01:53 UTC (rev 175130)
@@ -423,8 +423,9 @@
urlToStore = challenge.failureResponse().url();
CredentialStorage::set(webCredential, challenge.protectionSpace(), urlToStore);
- CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
- } else {
+ if (d->m_connection)
+ CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
+ } else if (d->m_connection) {
RetainPtr<CFURLCredentialRef> cfCredential = adoptCF(createCF(credential));
CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
}
@@ -440,7 +441,8 @@
if (challenge != d->m_currentWebChallenge)
return;
- CFURLConnectionUseCredential(d->m_connection.get(), 0, challenge.cfURLAuthChallengeRef());
+ if (d->m_connection)
+ CFURLConnectionUseCredential(d->m_connection.get(), 0, challenge.cfURLAuthChallengeRef());
clearAuthentication();
}
@@ -463,7 +465,8 @@
if (challenge != d->m_currentWebChallenge)
return;
- CFURLConnectionPerformDefaultHandlingForChallenge(d->m_connection.get(), challenge.cfURLAuthChallengeRef());
+ if (d->m_connection)
+ CFURLConnectionPerformDefaultHandlingForChallenge(d->m_connection.get(), challenge.cfURLAuthChallengeRef());
clearAuthentication();
}
@@ -476,7 +479,8 @@
if (challenge != d->m_currentWebChallenge)
return;
- CFURLConnectionRejectChallenge(d->m_connection.get(), challenge.cfURLAuthChallengeRef());
+ if (d->m_connection)
+ CFURLConnectionRejectChallenge(d->m_connection.get(), challenge.cfURLAuthChallengeRef());
clearAuthentication();
}