Title: [229038] branches/safari-605-branch/Source/WebKit
Revision
229038
Author
[email protected]
Date
2018-02-26 13:02:14 -0800 (Mon, 26 Feb 2018)

Log Message

Cherry-pick r229031. rdar://problem/37912128

Modified Paths

Diff

Modified: branches/safari-605-branch/Source/WebKit/ChangeLog (229037 => 229038)


--- branches/safari-605-branch/Source/WebKit/ChangeLog	2018-02-26 20:44:50 UTC (rev 229037)
+++ branches/safari-605-branch/Source/WebKit/ChangeLog	2018-02-26 21:02:14 UTC (rev 229038)
@@ -1,5 +1,27 @@
 2018-02-26  Jason Marcell  <[email protected]>
 
+        Cherry-pick r229031. rdar://problem/37912128
+
+    2018-02-26  Chris Dumez  <[email protected]>
+
+            Regression(r223431): Crash under didReceiveChallenge in NetworkSessionCocoa
+            https://bugs.webkit.org/show_bug.cgi?id=183134
+            <rdar://problem/36339049>
+
+            Reviewed by Alex Christensen.
+
+            Like other delegates functions in this file, it is possible for didReceiveChallenge to get called
+            after _session has been nulled out. Other delegate functions already had early returns when
+            _session is null. However, such early return was missing in didReceiveChallenge.
+
+            This patch ends the early return to didReceiveChallenge so that we do not end up calling
+            _session->downloadID(taskIdentifier) on a null _session.
+
+            * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+            (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
+
+2018-02-26  Jason Marcell  <[email protected]>
+
         Cherry-pick r228978. rdar://problem/37909154
 
     2018-02-25  Chris Dumez  <[email protected]>

Modified: branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (229037 => 229038)


--- branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2018-02-26 20:44:50 UTC (rev 229037)
+++ branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2018-02-26 21:02:14 UTC (rev 229038)
@@ -291,6 +291,11 @@
 
 - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler
 {
+    if (!_session) {
+        completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
+        return;
+    }
+
     auto taskIdentifier = task.taskIdentifier;
     LOG(NetworkSession, "%llu didReceiveChallenge", taskIdentifier);
     
@@ -344,7 +349,7 @@
         };
         networkDataTask->didReceiveChallenge(challenge, WTFMove(challengeCompletionHandler));
     } else {
-        auto downloadID = _session->downloadID(task.taskIdentifier);
+        auto downloadID = _session->downloadID(taskIdentifier);
         if (downloadID.downloadID()) {
             if (auto* download = WebKit::NetworkProcess::singleton().downloadManager().download(downloadID)) {
                 // Received an authentication challenge for a download being resumed.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to