Title: [257158] trunk/Source/WebKit
- Revision
- 257158
- Author
- [email protected]
- Date
- 2020-02-21 13:19:12 -0800 (Fri, 21 Feb 2020)
Log Message
REGRESSION (r255533) Null Deref of _sessionWrapper under [WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=208029
<rdar://problem/59404381>
Reviewed by Tim Horton.
r255533 started dereferencing _sessionWrapper without null check in didReceiveChallenge. All other delegates in this file null check
_sessionWrapper before using it because it is a weak pointer. Add a null check to avoid crashing.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate sessionFromTask:]):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (257157 => 257158)
--- trunk/Source/WebKit/ChangeLog 2020-02-21 21:12:03 UTC (rev 257157)
+++ trunk/Source/WebKit/ChangeLog 2020-02-21 21:19:12 UTC (rev 257158)
@@ -1,3 +1,17 @@
+2020-02-21 Chris Dumez <[email protected]>
+
+ REGRESSION (r255533) Null Deref of _sessionWrapper under [WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]
+ https://bugs.webkit.org/show_bug.cgi?id=208029
+ <rdar://problem/59404381>
+
+ Reviewed by Tim Horton.
+
+ r255533 started dereferencing _sessionWrapper without null check in didReceiveChallenge. All other delegates in this file null check
+ _sessionWrapper before using it because it is a weak pointer. Add a null check to avoid crashing.
+
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (-[WKNetworkSessionDelegate sessionFromTask:]):
+
2020-02-21 Wenson Hsieh <[email protected]>
Address post-review feedback in webkit.org/b/207352
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (257157 => 257158)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2020-02-21 21:12:03 UTC (rev 257157)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2020-02-21 21:19:12 UTC (rev 257158)
@@ -613,6 +613,9 @@
if (auto* networkDataTask = [self existingTask:task])
return static_cast<NetworkSessionCocoa*>(networkDataTask->networkSession());
+ if (!_sessionWrapper)
+ return nullptr;
+
if (auto downloadID = _sessionWrapper->downloadMap.get(task.taskIdentifier)) {
if (auto download = _session->networkProcess().downloadManager().download(downloadID))
return static_cast<NetworkSessionCocoa*>(_session->networkProcess().networkSession(download->sessionID()));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes